first Prototype

This commit is contained in:
Exobyt 2025-08-28 01:55:38 +02:00
parent e11825c698
commit 35ce267482
481 changed files with 17315 additions and 1 deletions

100
scenes/game/game.gd Normal file
View file

@ -0,0 +1,100 @@
extends Node3D
@onready var characterScene = preload("res://scenes/character/character.tscn")
@onready var camera = $cameraRottion/Camera3D
@onready var charactersContainer = $CharactersContainer
var players: Array[Player]
var selectablePlayers: Array[Player] = players.duplicate()
var guns: Array[Gun]
var roundCount: int = 0
var playerCount: int = 2
var lastCharacterRotation: int = 0
var rotationInterval: float = 360 / playerCount
var currentPlayer: Player
var currentPlayerIndex: int = 0
func _ready() -> void:
camera.itemSelected.connect(selectItem.bind())
camera.nextTurn.connect(nextTurn.bind())
addNewPlayer("Test 1")
addNewPlayer("Test 2")
players[1].bot = true
players[0].addItem(StandardBullet.new())
players[0].addItem(LuckyBullet.new())
nextRound()
nextTurn()
func nextTurn():
if currentPlayerIndex + 1 > selectablePlayers.size():
print("Shoot")
currentPlayerIndex = 0
givePlayersRandomGun()
shootPlayers()
else:
currentPlayer = selectablePlayers[currentPlayerIndex]
currentPlayerIndex += 1
#if not currentPlayer.bot:
camera.setCurrentPlayer(currentPlayer)
func addNewPlayer(_name: String):
var newGun = Gun.new()
guns.append(newGun)
var newCharacter = addCharacter()
var newPlayer = Player.new(_name, newGun, newCharacter)
players.append(newPlayer)
selectablePlayers.append(newPlayer)
camera.selectablePlayers = selectablePlayers
newPlayer.dead.connect(playerDied.bind())
func addCharacter() -> Character:
var newCharacter = characterScene.instantiate()
charactersContainer.add_child(newCharacter)
lastCharacterRotation += rotationInterval
newCharacter.rotation_degrees.y += lastCharacterRotation
return newCharacter
func playerDied(_player: Player) -> void:
selectablePlayers.erase(_player)
camera.selectablePlayers = selectablePlayers
print("Player " + _player.getGameName() + " is dead")
func givePlayersRandomGun():
randomize()
var gunPool = guns.duplicate()
for i in guns.size():
var newGun = gunPool.pick_random()
selectablePlayers[i].giveGun(newGun)
gunPool.erase(newGun)
func givePlayersGun():
for i in guns:
i.mainOwner.giveGun(i)
i.mainOwner.gun.resetMagazine()
func nextRound() -> void:
givePlayersGun()
for i in players:
i.addItem(StandardBullet.new())
roundCount += 1
camera.setRound(roundCount)
currentPlayerIndex = 0
func shootPlayers():
for i in selectablePlayers:
i.shootAtSelectedPlayer()
nextRound()
nextTurn()
func selectItem(_itemType: GLOBALS.ITEMTYPES):
playerUseItemType(currentPlayer, _itemType)
print(_itemType)
func playerUseItemType(_player: Player, _type: GLOBALS.ITEMTYPES) -> void:
for i in currentPlayer.getItems():
if i.type == _type:
currentPlayer.useItem(i)
break
camera.updatePlayerStats()

1
scenes/game/game.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://ylobnrrhfy5j

25
scenes/game/game.tscn Normal file
View file

@ -0,0 +1,25 @@
[gd_scene load_steps=4 format=3 uid="uid://y6lc82qrb1e2"]
[ext_resource type="Script" uid="uid://ylobnrrhfy5j" path="res://scenes/game/game.gd" id="1_sul5r"]
[ext_resource type="PackedScene" uid="uid://rch2yvsj0pdn" path="res://scenes/room/room.tscn" id="2_7h61r"]
[ext_resource type="PackedScene" uid="uid://ct45lmxlrkhaj" path="res://scenes/camera/camera.tscn" id="4_kelw5"]
[node name="Game" type="Node3D"]
script = ExtResource("1_sul5r")
[node name="Room" parent="." instance=ExtResource("2_7h61r")]
[node name="CharactersContainer" type="Node3D" parent="."]
[node name="light" type="Node3D" parent="."]
[node name="OmniLight3D" type="OmniLight3D" parent="light"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.52843, 0)
omni_range = 10.5
[node name="cameraRottion" type="Node3D" parent="."]
[node name="Camera3D" parent="cameraRottion" instance=ExtResource("4_kelw5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51089, 1.46703)
[node name="OmniLight3D" type="OmniLight3D" parent="cameraRottion/Camera3D"]