59 lines
2.1 KiB
GDScript
59 lines
2.1 KiB
GDScript
extends Resource
|
|
class_name gamemode
|
|
|
|
@export var gamemode_name : String = "My Custom Game Mode"
|
|
@export_range(1,5) var estimated_difficulty : int
|
|
@export_enum("Kill 'em All","Extraction","Survival_Time") var win_conditions
|
|
@export_group("Win Conditions")
|
|
@export var survival_time : float = 160 #in seconds
|
|
@export_group("Rewards and Penalties")
|
|
@export var max_number_of_chests : int = 3
|
|
@export var money_lost_multiplier : float = .5
|
|
@export var die_on_leaving_bounds : bool = true
|
|
@export_enum("Drop All Weapons","Drop Random","Drop None") var weapon_penalty = 1
|
|
@export var weapon_drop_percentage : float = .5
|
|
@export var ammo_drop_percentage : float = .5
|
|
@export_group("Player Movement")
|
|
@export var walk_speed = 12.0
|
|
@export var jump_velocity = 5
|
|
@export var dash_speed = 40
|
|
@export var gravity : float = -9.8
|
|
@export var time_slowed_speed : float = .1
|
|
@export var stamina_regen = true
|
|
@export var max_stamina : float = 100
|
|
@export var stamina_drain : float = 20
|
|
@export var stamina_gain : float = 5
|
|
@export var air_dash_max : int = 1
|
|
@export var load_save : = true
|
|
@export var money_multiplier : float = 1.0
|
|
@export var start_health = 10
|
|
@export var gun_1 : Resource
|
|
@export var gun_2 : Resource
|
|
@export_group("Drops")
|
|
@export var drop_chance_minimum = .1
|
|
@export var random_drops : bool = false
|
|
@export var ammo_drop_enabled = true
|
|
@export var expected_ammo = {"light" : 200, "medium" : 50, "heavy" : 25,"shotgun" : 20, "rocket" : 3} #light, medium,heavy,shotgun,rocket
|
|
@export var stamina_drop_enabled = true
|
|
@export var health_drop_enabled = true
|
|
@export var money_drop_enabled = true
|
|
|
|
|
|
func apply_weapon_penalty():
|
|
for i in GameGlobals.ammo_reserve:
|
|
GameGlobals.ammo_reserve[i] = int(GameGlobals.ammo_reserve[i] * ammo_drop_percentage)
|
|
match weapon_penalty:
|
|
0: #Drop All
|
|
GameGlobals.held_guns = []
|
|
1: #Drop Percentage
|
|
var weapons_lost = GameGlobals.held_guns.size() * weapon_drop_percentage
|
|
for weapon in weapons_lost:
|
|
GameGlobals.held_guns.erase(GameGlobals.held_guns.pick_random())
|
|
2: #Do Nothing
|
|
pass
|
|
|
|
func apply_money_penalty():
|
|
#Do money penalty
|
|
GameGlobals.money *= money_lost_multiplier
|
|
GameGlobals.deposited_money = GameGlobals.money
|