-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGameValues.gd
87 lines (68 loc) · 2.19 KB
/
GameValues.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
extends Node
var players = {}
var typing = false
var can_interact = false
var shop_open = false
var game_started = false
var game_ended = false
var messages = ""
var rounds_won = [0, 0] # T, CT
var player_money = 10000
var bomb_exploded = false
var bomb_active = false
signal message_sent_signal
signal player_killed_signal
signal player_stat_changed_signal
signal update_game_ui
signal defuse_ui(defuse_seconds, show)
func get_alive_players() -> Array[int]:
var t_alive = 0
var ct_alive = 0
for player in get_tree().get_nodes_in_group("Player"):
if player.alive:
if player.team == "T":
t_alive += 1
else:
ct_alive += 1
return [t_alive, ct_alive]
@rpc("any_peer", "call_local", "reliable")
func send_message(message = "MESSAGE_ERROR", username = "USERNAME_ERROR", player_id = 1):
var color = "#FFFFFF"
if player_id == 1:
color = "#FF4D4D"
else:
match players[player_id].team:
"T":
color = "#FFA836"
"CT":
color = "#364AFF"
if message != "" and message != " ":
var full_message = "[color=" + color + "]" + username + "[/color]" + ": " + message + "\n"
print(full_message)
messages += full_message
message_sent_signal.emit()
@rpc("any_peer", "call_local", "reliable")
func player_killed(killer_id, victim_id, victim_team):
if killer_id is String == false and killer_id != 1:
players[killer_id].kills += 1
players[victim_id].deaths += 1
var alive_players = get_alive_players()
for level in get_tree().get_nodes_in_group("Level"):
if alive_players[0] == 0 and bomb_active == false: # all T's are dead, bomb is offw
level.start_post_round("CT")
elif alive_players[1] == 0: # all CT's are dead
level.start_post_round("T")
if victim_team == "T":
players[victim_id].items = Items.default_t_items
else:
players[victim_id].items = Items.default_ct_items
player_killed_signal.emit()
@rpc("any_peer", "call_local", "reliable")
func change_player_stat(id, stat, value):
players[id][stat] = value
if stat == "equipped_item":
for player in get_tree().get_nodes_in_group("Player"):
if player.id == id:
if players[id].items[value]:
player.gun_sprite.texture = load(players[id].items[value].sprite)
player_stat_changed_signal.emit()