2022-11-09 12:09:17 +00:00
|
|
|
extends Node
|
|
|
|
|
2023-03-29 12:32:57 +00:00
|
|
|
@onready var game_time = get_node("/root/GameTimer")
|
|
|
|
@onready var player_vars = get_node("/root/PlayerVariables")
|
|
|
|
@onready var name_gen = get_node("/root/NameGenerator")
|
|
|
|
@onready var registers = get_node("/root/Registers")
|
|
|
|
@onready var pupil_manager = get_node("/root/Main/Pupils")
|
2022-11-09 12:09:17 +00:00
|
|
|
|
|
|
|
var pupil_neg_chance : int
|
|
|
|
var pupil_id : int
|
|
|
|
var pupil_first_name : String
|
|
|
|
var pupil_last_name : String
|
|
|
|
var pupil_full_name : String
|
|
|
|
var pupil_gender : bool
|
|
|
|
|
|
|
|
var pupil_achievement : int
|
|
|
|
var pupil_enjoyment : int
|
|
|
|
var pupil_wellbeing : int
|
|
|
|
|
|
|
|
var pupil_report_card : int
|
|
|
|
var pupil_year_group : int
|
|
|
|
|
|
|
|
var pupil_disorder : int
|
|
|
|
var pupil_diagnosed : bool
|
|
|
|
|
|
|
|
var pupil_in_game : int # The day ticker for how long the pupil was in the school
|
|
|
|
|
|
|
|
# Money related variables
|
|
|
|
|
|
|
|
var pupil_income : float # Both dailies added together
|
|
|
|
var pupil_daily_income : float # Daily income from Pupil Fee
|
|
|
|
var pupil_state_income : float # Daily income from State Funding
|
|
|
|
|
|
|
|
# For the portrait generator
|
|
|
|
|
|
|
|
var pupil_face : int
|
|
|
|
var pupil_eyes : int
|
|
|
|
var pupil_hair : int
|
|
|
|
var pupil_shirt : int
|
|
|
|
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
randomize()
|
|
|
|
pupil_neg_chance = (randi() % 20) + 1
|
2023-03-29 12:32:57 +00:00
|
|
|
game_time.connect("year_heartbeat", Callable(self, "pupil_on_year_heartbeat"))
|
|
|
|
game_time.connect("month_heartbeat", Callable(self, "pupil_on_month_heartbeat"))
|
|
|
|
game_time.connect("heartbeat", Callable(self, "pupil_on_heartbeat"))
|
2022-11-09 12:09:17 +00:00
|
|
|
player_vars.pupil_baseid += 1
|
|
|
|
pupil_gender = (randi() & 1)
|
|
|
|
randomize()
|
|
|
|
pupil_last_name = name_gen.last_name[randi() % name_gen.last_name.size()]
|
|
|
|
randomize()
|
|
|
|
if pupil_gender == true:
|
|
|
|
pupil_first_name = name_gen.boy_first_name[randi() % name_gen.boy_first_name.size()]
|
|
|
|
if pupil_gender == false:
|
|
|
|
pupil_first_name = name_gen.girl_first_name[randi() % name_gen.girl_first_name.size()]
|
|
|
|
pupil_id = player_vars.pupil_baseid
|
|
|
|
pupil_full_name = pupil_first_name + " " + pupil_last_name
|
|
|
|
registers.PupilRegister.append(pupil_full_name)
|
|
|
|
decide_year_group()
|
|
|
|
# SEN Need
|
|
|
|
randomize()
|
|
|
|
if pupil_neg_chance == 7:
|
|
|
|
pupil_disorder = randi() % 8
|
|
|
|
|
|
|
|
func decide_year_group():
|
|
|
|
if pupil_manager.year8_pop < pupil_manager.year1_max_pop:
|
|
|
|
pupil_year_group = 8
|
|
|
|
pupil_manager.year8_pop += 1
|
|
|
|
elif pupil_manager.year7_pop < pupil_manager.year2_max_pop:
|
|
|
|
pupil_year_group = 7
|
|
|
|
pupil_manager.year7_pop += 1
|
|
|
|
elif pupil_manager.year6_pop < pupil_manager.year3_max_pop:
|
|
|
|
pupil_year_group = 6
|
|
|
|
pupil_manager.year6_pop += 1
|
|
|
|
elif pupil_manager.year5_pop < pupil_manager.year4_max_pop:
|
|
|
|
pupil_year_group = 5
|
|
|
|
pupil_manager.year5_pop += 1
|
|
|
|
elif pupil_manager.year4_pop < pupil_manager.year5_max_pop:
|
|
|
|
pupil_year_group = 4
|
|
|
|
pupil_manager.year4_pop += 1
|
|
|
|
elif pupil_manager.year3_pop < pupil_manager.year6_max_pop:
|
|
|
|
pupil_year_group = 3
|
|
|
|
pupil_manager.year3_pop += 1
|
|
|
|
elif pupil_manager.year2_pop < pupil_manager.year7_max_pop:
|
|
|
|
pupil_year_group = 2
|
|
|
|
pupil_manager.year2_pop += 1
|
|
|
|
elif pupil_manager.year1_pop < pupil_manager.year8_max_pop:
|
|
|
|
pupil_year_group = 1
|
|
|
|
pupil_manager.year1_pop += 1
|
|
|
|
# pupil_year_group = (randi() % 8) + 1
|
|
|
|
|
|
|
|
func pupil_on_too_many():
|
|
|
|
if pupil_year_group == 1: pupil_manager.year1_pop -= 1
|
|
|
|
if pupil_year_group == 2: pupil_manager.year1_pop -= 2
|
|
|
|
if pupil_year_group == 3: pupil_manager.year1_pop -= 3
|
|
|
|
if pupil_year_group == 4: pupil_manager.year1_pop -= 4
|
|
|
|
if pupil_year_group == 5: pupil_manager.year1_pop -= 5
|
|
|
|
if pupil_year_group == 6: pupil_manager.year1_pop -= 6
|
|
|
|
if pupil_year_group == 7: pupil_manager.year1_pop -= 7
|
|
|
|
if pupil_year_group == 8: pupil_manager.year1_pop -= 8
|
|
|
|
registers.PupilRegister.remove(pupil_full_name)
|
|
|
|
queue_free()
|
|
|
|
|
|
|
|
func pupil_on_year_heartbeat():
|
|
|
|
pupil_year_group += 1
|
|
|
|
if pupil_year_group == 2:
|
|
|
|
pupil_manager.year1_pop -= 1
|
|
|
|
pupil_manager.year2_pop += 1
|
|
|
|
if pupil_year_group == 3:
|
|
|
|
pupil_manager.year2_pop -= 1
|
|
|
|
pupil_manager.year3_pop += 1
|
|
|
|
if pupil_year_group == 4:
|
|
|
|
pupil_manager.year3_pop -= 1
|
|
|
|
pupil_manager.year4_pop += 1
|
|
|
|
if pupil_year_group == 5:
|
|
|
|
pupil_manager.year4_pop -= 1
|
|
|
|
pupil_manager.year5_pop += 1
|
|
|
|
if pupil_year_group == 6:
|
|
|
|
pupil_manager.year5_pop -= 1
|
|
|
|
pupil_manager.year6_pop += 1
|
|
|
|
if pupil_year_group == 7:
|
|
|
|
pupil_manager.year6_pop -= 1
|
|
|
|
pupil_manager.year7_pop += 1
|
|
|
|
if pupil_year_group == 8:
|
|
|
|
pupil_manager.year7_pop -= 1
|
|
|
|
pupil_manager.year8_pop += 1
|
|
|
|
|
|
|
|
if pupil_year_group == 9:
|
|
|
|
pupil_manager.year8_pop -= 1
|
|
|
|
queue_free()
|
|
|
|
|
|
|
|
func pupil_on_month_heartbeat():
|
|
|
|
# Too many pupils
|
|
|
|
|
|
|
|
if player_vars.max_pupils < player_vars.pupil_pop:
|
|
|
|
pupil_on_too_many()
|
|
|
|
|
|
|
|
func pupil_on_heartbeat():
|
|
|
|
pupil_in_game += 1
|
|
|
|
player_vars.pupils_income += (player_vars.pupil_fee / 20) + (player_vars.pupil_funding / 20)
|
|
|
|
|
|
|
|
# PupilTracker stuff
|
|
|
|
pupil_manager.pa_pool += 1
|
|
|
|
pupil_manager.pe_pool += 1
|
|
|
|
pupil_manager.pw_pool += 1
|