first Prototype
This commit is contained in:
parent
e11825c698
commit
35ce267482
481 changed files with 17315 additions and 1 deletions
7
scripts/globals/globals.gd
Normal file
7
scripts/globals/globals.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
extends Node
|
||||
|
||||
enum ITEMTYPES {
|
||||
EMPTY,
|
||||
STANDARDBULLET,
|
||||
LUCKYBULLET
|
||||
}
|
||||
1
scripts/globals/globals.gd.uid
Normal file
1
scripts/globals/globals.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bfagh8y1c83i2
|
||||
40
scripts/gun/gun.gd
Normal file
40
scripts/gun/gun.gd
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
class_name Gun extends Node
|
||||
|
||||
@onready var empty = preload("res://scripts/item/bullet/Empty/empty.gd")
|
||||
|
||||
const maxMagazineSize: int = 12
|
||||
const minMagazineSize: int = 2
|
||||
var magazineSize: int = 6
|
||||
|
||||
var loadedBullets: int = 0
|
||||
|
||||
var magazin: Array[Bullet]
|
||||
|
||||
var mainOwner: Player
|
||||
|
||||
func setOwner(_player: Player) -> void:
|
||||
mainOwner = _player
|
||||
|
||||
func loadBullet(_bullet: Bullet):
|
||||
if magazin.size() + 1 <= magazineSize:
|
||||
magazin.append(_bullet)
|
||||
|
||||
func fillEmpty():
|
||||
if magazin.size() < magazineSize:
|
||||
for i in range(0, magazineSizeLeft()):
|
||||
loadBullet(Empty.new())
|
||||
|
||||
func resetMagazine():
|
||||
magazin = []
|
||||
|
||||
func getRandomBullet() -> Bullet:
|
||||
fillEmpty()
|
||||
var randomBullet = magazin.pick_random()
|
||||
magazin.erase(randomBullet)
|
||||
return randomBullet
|
||||
|
||||
func getBulletAmount() -> int:
|
||||
return magazin.size()
|
||||
|
||||
func magazineSizeLeft() -> int:
|
||||
return magazineSize - magazin.size()
|
||||
1
scripts/gun/gun.gd.uid
Normal file
1
scripts/gun/gun.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b3s5n3psysjrr
|
||||
5
scripts/item/bullet/Empty/empty.gd
Normal file
5
scripts/item/bullet/Empty/empty.gd
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
class_name Empty extends Bullet
|
||||
|
||||
func _init() -> void:
|
||||
type = GLOBALS.ITEMTYPES.EMPTY
|
||||
damage = 0
|
||||
1
scripts/item/bullet/Empty/empty.gd.uid
Normal file
1
scripts/item/bullet/Empty/empty.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c3l3ik8fk4h3b
|
||||
12
scripts/item/bullet/LuckyBullet/luckyBullet.gd
Normal file
12
scripts/item/bullet/LuckyBullet/luckyBullet.gd
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
class_name LuckyBullet extends Bullet
|
||||
|
||||
var minDamage: int = 0
|
||||
var maxDamage: int = 2
|
||||
|
||||
func _init() -> void:
|
||||
type = GLOBALS.ITEMTYPES.LUCKYBULLET
|
||||
|
||||
func getDamage() -> int:
|
||||
randomize()
|
||||
var rng = RandomNumberGenerator.new()
|
||||
return rng.randi_range(minDamage, maxDamage)
|
||||
1
scripts/item/bullet/LuckyBullet/luckyBullet.gd.uid
Normal file
1
scripts/item/bullet/LuckyBullet/luckyBullet.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bxlgreqfamldl
|
||||
5
scripts/item/bullet/StandardBullet/standardBulet.gd
Normal file
5
scripts/item/bullet/StandardBullet/standardBulet.gd
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
class_name StandardBullet extends Bullet
|
||||
|
||||
func _init() -> void:
|
||||
type = GLOBALS.ITEMTYPES.STANDARDBULLET
|
||||
damage = 1
|
||||
1
scripts/item/bullet/StandardBullet/standardBulet.gd.uid
Normal file
1
scripts/item/bullet/StandardBullet/standardBulet.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c1gjjch8h0q21
|
||||
6
scripts/item/bullet/bullet.gd
Normal file
6
scripts/item/bullet/bullet.gd
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
class_name Bullet extends Item
|
||||
|
||||
var damage: int = 0
|
||||
|
||||
func getDamage() -> int:
|
||||
return damage
|
||||
1
scripts/item/bullet/bullet.gd.uid
Normal file
1
scripts/item/bullet/bullet.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bbqlf1ni1fgmu
|
||||
3
scripts/item/item.gd
Normal file
3
scripts/item/item.gd
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
class_name Item extends Node
|
||||
|
||||
var type: GLOBALS.ITEMTYPES
|
||||
1
scripts/item/item.gd.uid
Normal file
1
scripts/item/item.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bkg3ot20liwdx
|
||||
110
scripts/player/player.gd
Normal file
110
scripts/player/player.gd
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
class_name Player extends Node
|
||||
|
||||
var gameName: String = ""
|
||||
|
||||
# -- HEALTH --
|
||||
const maxHealth: int = 3
|
||||
const minHealth: int = 0
|
||||
var health := maxHealth
|
||||
# -- HEALTH --
|
||||
|
||||
# -- Item --
|
||||
var itemInventory: Array[Item] = []
|
||||
# -- Item --
|
||||
|
||||
var gun: Gun
|
||||
var selectedPlayer: Player = self
|
||||
|
||||
var character: Character
|
||||
|
||||
var bot: bool = false
|
||||
|
||||
signal dead(player: Player)
|
||||
signal hit(player: Player)
|
||||
signal missed()
|
||||
signal hurt()
|
||||
|
||||
func _init(_name: String, _gun: Gun, _character: Character) -> void:
|
||||
gameName = _name
|
||||
gun = _gun
|
||||
character = _character
|
||||
gun.setOwner(self)
|
||||
|
||||
# -- HEALTH --
|
||||
func damage(amount: int) -> void:
|
||||
print("Hit")
|
||||
if health - amount < minHealth:
|
||||
kill()
|
||||
health = minHealth
|
||||
else:
|
||||
health -= amount
|
||||
for i in range(0,amount):
|
||||
character.removeShot()
|
||||
|
||||
func heal(amount: int) -> void:
|
||||
if health + amount > maxHealth:
|
||||
health = maxHealth
|
||||
else:
|
||||
health += amount
|
||||
|
||||
func getHealth () -> int:
|
||||
return health
|
||||
|
||||
func kill():
|
||||
dead.emit(self)
|
||||
# -- HEALTH --
|
||||
|
||||
|
||||
# -- Item --
|
||||
func addItem(_item: Item) -> void:
|
||||
itemInventory.append(_item)
|
||||
|
||||
func removeItem(_item: Item) -> void:
|
||||
itemInventory.erase(_item)
|
||||
|
||||
func getItems() -> Array[Item]:
|
||||
return itemInventory
|
||||
# -- Item --
|
||||
|
||||
|
||||
# -- Gun --
|
||||
func giveGun(_gun: Gun):
|
||||
gun = _gun
|
||||
|
||||
func takeGun():
|
||||
gun = null
|
||||
|
||||
func useItem(_item: Item):
|
||||
if _item is Bullet:
|
||||
loadBullet(_item)
|
||||
else:
|
||||
print("no bullet")
|
||||
|
||||
func loadBullet(_bullet: Bullet):
|
||||
gun.loadBullet(_bullet)
|
||||
itemInventory.erase(_bullet)
|
||||
|
||||
func shootAtSelectedPlayer():
|
||||
var randomBullet = gun.getRandomBullet()
|
||||
if randomBullet is StandardBullet or randomBullet is LuckyBullet:
|
||||
var bulletDamage = randomBullet.getDamage()
|
||||
if bulletDamage > 0:
|
||||
selectedPlayer.damage(bulletDamage)
|
||||
else:
|
||||
print("Missed")
|
||||
else:
|
||||
print("Empty")
|
||||
|
||||
# -- Gun --
|
||||
|
||||
func selectPlayer(_player: Player) -> void:
|
||||
selectedPlayer = _player
|
||||
|
||||
func getGameName() -> String:
|
||||
return gameName
|
||||
|
||||
func setCharacter(_character: Character) -> void:
|
||||
character = _character
|
||||
|
||||
func getItemAmount() -> int:
|
||||
return itemInventory.size()
|
||||
1
scripts/player/player.gd.uid
Normal file
1
scripts/player/player.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://fkhkxtks5vaw
|
||||
Loading…
Add table
Add a link
Reference in a new issue