Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Points defence #4

Merged
merged 52 commits into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
bf757c3
upd_1
homexp13 Jul 9, 2024
66b8ea4
Merge branch 'master-RuTGMC_reborn' into game_mode
homexp13 Jul 13, 2024
3b404a6
shiza
homexp13 Jul 13, 2024
676b8e1
some new
homexp13 Jul 14, 2024
d492cc2
what
homexp13 Jul 14, 2024
0ad2467
Update code/_compile_options.dm
homexp13 Jul 16, 2024
092686b
crush respawn
homexp13 Jul 28, 2024
e3dde4c
Merge branch 'game_mode' of https://github.com/homexp13/RuTGMC-Reborn…
homexp13 Jul 28, 2024
9c9b07a
fix
homexp13 Jul 28, 2024
435f239
Merge branch 'master-RuTGMC_reborn' into game_mode
homexp13 Jul 28, 2024
6ae239e
tunel
homexp13 Jul 28, 2024
73657a3
core
homexp13 Jul 28, 2024
465c624
den
homexp13 Aug 6, 2024
003355c
testing
homexp13 Aug 6, 2024
0ad7304
Merge branch 'master-RuTGMC_reborn' into game_mode
homexp13 Aug 6, 2024
cf24fcc
ports
homexp13 Aug 13, 2024
792f130
SUBSYSTEM
homexp13 Aug 13, 2024
f2f471b
morecores
homexp13 Aug 13, 2024
182cce2
i kill
homexp13 Aug 13, 2024
3fce62d
marks
homexp13 Aug 13, 2024
e50f920
Merge branch 'master-RuTGMC_reborn' into game_mode
homexp13 Aug 13, 2024
5634b96
round_statistics
homexp13 Aug 13, 2024
a5d4273
boost_condition_sensors_amount
homexp13 Aug 13, 2024
3857118
Extra points
homexp13 Aug 13, 2024
a516601
bruh
homexp13 Aug 13, 2024
f024c66
Update code/modules/xenomorph/xeno_core.dm
homexp13 Aug 19, 2024
26169df
Update code/modules/xenomorph/xeno_core.dm
homexp13 Aug 19, 2024
f061bb9
Update code/modules/xenomorph/xeno_core.dm
homexp13 Aug 19, 2024
a39e99f
Update code/modules/xenomorph/xeno_core.dm
homexp13 Aug 19, 2024
b23cb37
Update code/modules/xenomorph/xeno_core.dm
homexp13 Aug 19, 2024
ebdc0f8
examine
homexp13 Aug 19, 2024
6e32b5e
RP moment
homexp13 Aug 19, 2024
6658e1c
undef
homexp13 Aug 19, 2024
3566643
Update code/controllers/subsystem/xeno_den.dm
homexp13 Aug 19, 2024
0518538
QDEL_LIST
homexp13 Aug 19, 2024
e8319f2
Merge branch 'game_mode' of https://github.com/homexp13/RuTGMC-Reborn…
homexp13 Aug 19, 2024
5918e96
_amount
homexp13 Aug 19, 2024
681ba9c
Update code/game/objects/machinery/telecomms/ground_telecomms.dm
homexp13 Aug 19, 2024
7bbaf1b
Update code/game/objects/machinery/telecomms/ground_telecomms.dm
homexp13 Aug 19, 2024
fabe456
xd
homexp13 Aug 19, 2024
2e299aa
Merge branch 'game_mode' of https://github.com/homexp13/RuTGMC-Reborn…
homexp13 Aug 19, 2024
298de22
Update code/game/objects/machinery/telecomms/ground_telecomms.dm
homexp13 Aug 19, 2024
92bf45a
undef
homexp13 Aug 19, 2024
27382de
Merge branch 'game_mode' of https://github.com/homexp13/RuTGMC-Reborn…
homexp13 Aug 19, 2024
8e7610f
weldingtool
homexp13 Aug 19, 2024
160efc4
aaa
homexp13 Aug 19, 2024
aa2883a
doc
homexp13 Aug 19, 2024
8913904
Merge branch 'master' into game_mode
homexp13 Aug 22, 2024
f4657e0
Update code/modules/xenomorph/tunnel.dm
homexp13 Aug 23, 2024
398cd54
Update code/modules/xenomorph/tunnel.dm
homexp13 Aug 23, 2024
608b538
Update code/modules/xenomorph/xeno_core.dm
homexp13 Aug 23, 2024
32b784f
here we go again
homexp13 Aug 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27,887 changes: 27,887 additions & 0 deletions _maps/map_files/Xeno_den/Xeno_den.dmm

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions code/__DEFINES/_radio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@

#define FREQ_COMMON 1437

#define GROUND_FREQS list(FREQ_ALPHA, FREQ_BRAVO, FREQ_CHARLIE, FREQ_DELTA, FREQ_ECHO)
#define TOWER_FREQS list(FREQ_CAS, FREQ_ENGINEERING, FREQ_MEDICAL, FREQ_REQUISITIONS, FREQ_AI, FREQ_COMMAND, FREQ_COMMON)

#define MIN_FREQ 1441 // ------------------------------------------------------
// Only the 1441 to 1489 range is freely available for general conversation.
// This represents 1/8th of the available spectrum.
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/_subsystems.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@
#define INIT_ORDER_ICON_SMOOTHING -16
#define INIT_ORDER_LIGHTING -20
#define INIT_ORDER_SHUTTLE -21
#define INIT_ORDER_XENODEN -23
#define INIT_ORDER_PATH -50
//#define INIT_ORDER_EXPLOSIONS -69 // RUTGMC DELETION
#define INIT_ORDER_EXCAVATION -78
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#define COMSIG_GLOB_OPEN_TIMED_SHUTTERS_XENO_HIVEMIND "!open_timed_shutters_xeno_hivemind"
#define COMSIG_GLOB_OPEN_TIMED_SHUTTERS_CRASH "!open_timed_shutters_crash"
#define COMSIG_GLOB_OPEN_SHUTTERS_EARLY "!open_shutters_early"
#define COMSIG_GLOB_TELETOWER "!teletower"

#define COMSIG_GLOB_TADPOLE_LAUNCHED "!tadpole_launched"
#define COMSIG_GLOB_DROPPOD_LANDED "!pod_landed"
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@
#define issensorcapturegamemode(O) (istype(O, /datum/game_mode/hvh/combat_patrol/sensor_capture))
#define iscampaigngamemode(O) (istype(O, /datum/game_mode/hvh/campaign))
#define isdistressgamemode(O) (istype(O, /datum/game_mode/infestation/distress))
#define ispointsdefencegamemode(O) (istype(O, /datum/game_mode/infestation/distress/points_defence))

#define isxenoresearcharea(A) (istype(A, /area/mainship/medical/medical_science))

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/maps.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ require only minor tweaks.
#define ZTRAIT_STATION "Station"
#define ZTRAIT_RESERVED "Transit/Reserved"
#define ZTRAIT_GROUND "Ground"
#define ZTRAIT_XENO "XENO"
#define ZTRAIT_MARINE_MAIN_SHIP "Marine Main Ship"
#define ZTRAIT_DOUBLE_SHIPS "Double Marine Ship"
#define ZTRAIT_AWAY "Away"
Expand Down
3 changes: 2 additions & 1 deletion code/__DEFINES/minimap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
#define MINIMAP_FLAG_MARINE (1<<1)
#define MINIMAP_FLAG_MARINE_SOM (1<<2)
#define MINIMAP_FLAG_EXCAVATION_ZONE (1<<3)
#define MINIMAP_FLAG_UNIDENTIFIED (1<<4)
#define MINIMAP_FLAG_YAUTJA (1<<5)
#define MINIMAP_FLAG_ALL (1<<6) - 1 //RU TGMC EDIT
#define MINIMAP_FLAG_ALL (1<<6) - 1

GLOBAL_LIST_INIT(faction_to_minimap_flag, list(
FACTION_XENO = MINIMAP_FLAG_XENO,
Expand Down
5 changes: 5 additions & 0 deletions code/__DEFINES/mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
#define MODE_SILOS_SPAWN_MINIONS (1<<13)
#define MODE_ALLOW_XENO_QUICKBUILD (1<<14)
#define MODE_DISALLOW_RAILGUN (1<<15)
#define MODE_TELETOWER (1<<16)
#define MODE_XENO_DEN (1<<17)

#define MODE_INFESTATION_X_MAJOR "Xenomorph Major Victory"
#define MODE_INFESTATION_M_MAJOR "Marine Major Victory"
Expand Down Expand Up @@ -143,6 +145,9 @@
#define INFESTATION_MARINE_DEPLOYMENT 0
#define INFESTATION_MARINE_CRASHING 1
#define INFESTATION_DROPSHIP_CAPTURED_XENOS 2
#define INFESTATION_MARINE_MINOR 3
#define INFESTATION_MARINE_DEN_RUSH 4
#define INFESTATION_MARIN_RUSH_MAJOR 5

#define NUCLEAR_WAR_LARVA_POINTS_NEEDED 8
#define CRASH_LARVA_POINTS_NEEDED 10
Expand Down
2 changes: 1 addition & 1 deletion code/_compile_options.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//#define TESTING //By using the testing("message") proc you can create debug-feedback for people with this
#define TESTING //By using the testing("message") proc you can create debug-feedback for people with this
//uncommented, but not visible in the release version)
homexp13 marked this conversation as resolved.
Show resolved Hide resolved

//#define DATUMVAR_DEBUGGING_MODE //Enables the ability to cache datum vars and retrieve later for debugging which vars changed.
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/game_modes.dm
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
GLOBAL_VAR_INIT(master_mode, "Nuclear War")
GLOBAL_VAR_INIT(tower_relay, FALSE)
6 changes: 6 additions & 0 deletions code/_globalvars/lists/objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ GLOBAL_LIST_INIT(ammo_list, init_ammo_list()) //List of all ammo types. Use

GLOBAL_LIST_EMPTY(xeno_egg_hugger)

GLOBAL_LIST_EMPTY(miners_phorone)
GLOBAL_LIST_EMPTY(miners_platinum)

GLOBAL_LIST_EMPTY(miner_phorone_locs)
GLOBAL_LIST_EMPTY(miner_platinum_locs)

/proc/init_ammo_list()
. = list()
// Our ammo stuff is initialized here.
Expand Down
18 changes: 18 additions & 0 deletions code/controllers/subsystem/xeno_den.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#define XENO_DEN_LEVEL_PATH "_maps/map_files/Xeno_den/Xeno_den.dmm"
homexp13 marked this conversation as resolved.
Show resolved Hide resolved

SUBSYSTEM_DEF(Xenoden)
name = "Xenoden"
init_order = INIT_ORDER_XENODEN
flags = SS_NO_FIRE

// Current template in use
var/datum/map_template/xenoden_template

///The actual z-level the den is played on
var/datum/space_level/xenoden_z_level

//Может карту можно как то по другому подгружать и не загружать когда не нужно
/datum/controller/subsystem/Xenoden/Initialize(timeofday)
homexp13 marked this conversation as resolved.
Show resolved Hide resolved
if(SSticker.mode?.flags_round_type & MODE_XENO_DEN)
xenoden_z_level = load_new_z_level(XENO_DEN_LEVEL_PATH, "Xenoden", TRUE, list(ZTRAIT_GROUND = TRUE, ZTRAIT_XENO = TRUE)) // надеюсь ZTRAIT_GROUND будет работать корректно, в противном случает сделать новый трейт

4 changes: 4 additions & 0 deletions code/datums/gamemodes/_game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,8 @@ GLOBAL_LIST_INIT(bioscan_locations, list(
parts += "[GLOB.round_statistics.larva_from_psydrain] larvas came from psydrain."
if(GLOB.round_statistics.larva_from_silo)
parts += "[GLOB.round_statistics.larva_from_silo] larvas came from silos."
if(GLOB.round_statistics.larva_from_towers)
parts += "[GLOB.round_statistics.larva_from_towers] larvas came from infestation towers."
if(GLOB.round_statistics.larva_from_cocoon)
parts += "[GLOB.round_statistics.larva_from_cocoon] larvas came from cocoons."
if(GLOB.round_statistics.larva_from_marine_spawning)
Expand All @@ -480,6 +482,8 @@ GLOBAL_LIST_INIT(bioscan_locations, list(
parts += "[GLOB.round_statistics.psy_shield_blasts] number of times Warlocks detonated a Psychic Shield."
if(GLOB.round_statistics.points_from_mining)
parts += "[GLOB.round_statistics.points_from_mining] requisitions points gained from mining."
if(GLOB.round_statistics.points_from_towers)
parts += "[GLOB.round_statistics.points_from_towers] requisitions points gained from infestation towers."
if(GLOB.round_statistics.points_from_research)
parts += "[GLOB.round_statistics.points_from_research] requisitions points gained from research."
if(length(GLOB.round_statistics.req_items_produced))
Expand Down
249 changes: 249 additions & 0 deletions code/datums/gamemodes/points_defence.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
/datum/game_mode/infestation/distress/points_defence
homexp13 marked this conversation as resolved.
Show resolved Hide resolved
name = "Points Defence"
config_tag = "Points Defence"
silo_scaling = 0 //do you really need a silo?

///The amount of sensor towers in sensor defence

var/sensors_activated = 0

var/victory_condition_sensors_amount
var/phorone_sensors
var/platinum_sensors
homexp13 marked this conversation as resolved.
Show resolved Hide resolved

//points generation
var/points_check_interval = 1 MINUTES
///Last time points balance was checked
var/last_points_check
///Ponderation rate of sensors output
var/sensors_larva_points_scaling = 2.4

//Victory point
var/marine_victory_point = 5000
var/xeno_victory_point = 5000

var/points_to_win = 5000

var/allow_hijack = FALSE
var/can_hunt = FALSE

flags_round_type = MODE_INFESTATION|MODE_LATE_OPENING_SHUTTER_TIMER|MODE_XENO_RULER|MODE_PSY_POINTS|MODE_PSY_POINTS_ADVANCED|MODE_DEAD_GRAB_FORBIDDEN|MODE_HIJACK_POSSIBLE|MODE_SILO_RESPAWN|MODE_SILOS_SPAWN_MINIONS|MODE_ALLOW_XENO_QUICKBUILD|MODE_TELETOWER|MODE_XENO_DEN

/datum/game_mode/infestation/distress/points_defence/post_setup()
. = ..()

//delete miners
for(var/atom/A AS in GLOB.miners_phorone)
qdel(A)
for(var/atom/A AS in GLOB.miners_platinum)
qdel(A)
homexp13 marked this conversation as resolved.
Show resolved Hide resolved

//number of sensors
//the number of sensors is greater than necessary to win, so that the late game does not turn into a 1 point defense
switch(TGS_CLIENT_COUNT)
if(1 to 15) //i dunno who will play it
victory_condition_sensors_amount = 2
phorone_sensors = 1
platinum_sensors = 1
if(16 to 30)
victory_condition_sensors_amount = 2
phorone_sensors = 1
platinum_sensors = 2
if(31 to 40)
victory_condition_sensors_amount = 3
phorone_sensors = 2
platinum_sensors = 2
if(41 to 50)
victory_condition_sensors_amount = 3
phorone_sensors = 1
platinum_sensors = 3
if(51 to 75)
victory_condition_sensors_amount = 4
phorone_sensors = 2
platinum_sensors = 3
if(76 to 100)
victory_condition_sensors_amount = 4
phorone_sensors = 1
platinum_sensors = 4
else //madness
victory_condition_sensors_amount = 5
phorone_sensors = 3
platinum_sensors = 3


// TODOD поменять на стационарные точки
//setip sensor towers
for(var/i in 1 to phorone_sensors)
var/turf/T = pick(GLOB.miner_phorone_locs)
new /obj/structure/sensor_tower_infestation(T)
GLOB.miner_phorone_locs -= T

for(var/i in 1 to platinum_sensors)
var/turf/T = pick(GLOB.miner_platinum_locs)
new /obj/structure/sensor_tower_infestation(T)
GLOB.miner_platinum_locs -= T

//comms
for(var/i in 1 to phorone_sensors)
var/turf/T = pick(GLOB.miner_phorone_locs)
new /obj/machinery/telecomms/relay/preset/tower(T)
GLOB.miner_phorone_locs -= T

/datum/game_mode/infestation/distress/points_defence/check_finished()
if(round_finished)
return TRUE

if(world.time < (SSticker.round_start_time + 5 SECONDS))
return FALSE

var/list/living_player_list = count_humans_and_xenos(count_flags = COUNT_IGNORE_ALIVE_SSD|COUNT_IGNORE_XENO_SPECIAL_AREA)
var/num_humans = living_player_list[1]
var/num_xenos = living_player_list[2]
var/num_humans_ship = living_player_list[3]

//TODO поменять условие победы на очки и чтобы была возможность пройти на 2 этап игры
if(SSevacuation.dest_status == NUKE_EXPLOSION_FINISHED)
message_admins("Round finished: [MODE_GENERIC_DRAW_NUKE]") //ship blows, no one wins
round_finished = MODE_GENERIC_DRAW_NUKE
return TRUE

if(round_stage == INFESTATION_DROPSHIP_CAPTURED_XENOS)
message_admins("Round finished: [MODE_INFESTATION_X_MINOR]")
round_finished = MODE_INFESTATION_X_MINOR
return TRUE

if(round_stage == INFESTATION_MARINE_MINOR)
message_admins("Round finished: [MODE_INFESTATION_M_MINOR]")
round_finished = MODE_INFESTATION_M_MINOR
return TRUE

if(round_stage == INFESTATION_MARIN_RUSH_MAJOR)
message_admins("Round finished: [MODE_INFESTATION_M_MAJOR]")
round_finished = MODE_INFESTATION_M_MAJOR
return TRUE

if(!num_humans)
if(!num_xenos)
message_admins("Round finished: [MODE_INFESTATION_DRAW_DEATH]") //everyone died at the same time, no one wins
round_finished = MODE_INFESTATION_DRAW_DEATH
return TRUE
message_admins("Round finished: [MODE_INFESTATION_X_MAJOR]") //xenos wiped out ALL the marines without hijacking, xeno major victory
round_finished = MODE_INFESTATION_X_MAJOR
return TRUE
if(!num_xenos)
if(round_stage == INFESTATION_MARINE_CRASHING)
message_admins("Round finished: [MODE_INFESTATION_M_MINOR]") //marines lost the ground operation but managed to wipe out Xenos on the ship at a greater cost, minor victory
round_finished = MODE_INFESTATION_M_MINOR
return TRUE
message_admins("Round finished: [MODE_INFESTATION_M_MAJOR]") //marines win big
round_finished = MODE_INFESTATION_M_MAJOR
return TRUE
if(round_stage == INFESTATION_MARINE_CRASHING && !num_humans_ship)
if(SSevacuation.human_escaped > SSevacuation.initial_human_on_ship * 0.5)
message_admins("Round finished: [MODE_INFESTATION_X_MINOR]") //xenos have control of the ship, but most marines managed to flee
round_finished = MODE_INFESTATION_X_MINOR
return
message_admins("Round finished: [MODE_INFESTATION_X_MAJOR]") //xenos wiped our marines, xeno major victory
round_finished = MODE_INFESTATION_X_MAJOR
return TRUE
return FALSE

/datum/game_mode/infestation/distress/points_defence/process()
. = ..()
if(world.time > last_points_check + points_check_interval)
add_larva_points()
add_victory_points()
last_points_check = world.time

/datum/game_mode/infestation/distress/points_defence/proc/add_larva_points()
//prohibit generation before the shutters open
if(!SSsilo.can_fire)
return

//we should not spawn larvas on shipside
if(SSmonitor.gamestate == SHIPSIDE)
return

var/current_larva_spawn_rate = 0

var/datum/job/xeno_job = SSjob.GetJobType(/datum/job/xenomorph)
var/active_humans = length(GLOB.humans_by_zlevel["2"]) + length(GLOB.humans_by_zlevel["6"]) //we should not spawn larvas on shipside anyway
var/active_xenos = xeno_job.total_positions - xeno_job.current_positions //burrowed
for(var/mob/living/carbon/xenomorph/xeno AS in GLOB.alive_xeno_list_hive[XENO_HIVE_NORMAL])
if(xeno.xeno_caste.caste_flags & CASTE_IS_A_MINION)
continue
active_xenos ++
current_larva_spawn_rate = (victory_condition_sensors_amount - sensors_activated) / victory_condition_sensors_amount
//We then are normalising with the number of alive marines, so the balance is roughly the same whether or not we are in high pop
current_larva_spawn_rate *= SILO_BASE_OUTPUT_PER_MARINE * active_humans
current_larva_spawn_rate *= sensors_larva_points_scaling
//We scale the rate based on the current ratio of humans to xenos
var/current_human_to_xeno_ratio = active_humans / active_xenos
var/optimal_human_to_xeno_ratio = xeno_job.job_points_needed / (LARVA_POINTS_REGULAR + 1) // TODO это надо дополнительно отбалансить
current_larva_spawn_rate *= clamp(current_human_to_xeno_ratio / optimal_human_to_xeno_ratio , 0, 3) // TODO это надо дополнительно отбалансить

GLOB.round_statistics.larva_from_towers += current_larva_spawn_rate / xeno_job.job_points_needed

xeno_job.add_job_points(current_larva_spawn_rate)

var/datum/hive_status/normal_hive = GLOB.hive_datums[XENO_HIVE_NORMAL]
normal_hive.update_tier_limits()

/datum/game_mode/infestation/distress/points_defence/proc/add_victory_points()
//prohibit generation before the shutters open
if(!SSsilo.can_fire)
return

//Victory point
marine_victory_point += sensors_activated * (points_check_interval / 10)
if(marine_victory_point >= points_to_win && !can_hunt)
can_hunt = TRUE
for(var/mob/living/carbon/human/human AS in GLOB.alive_human_list)
if(human.faction == FACTION_TERRAGOV)
human.playsound_local(human, "sound/effects/CIC_order.ogg", 10, 1)
human.play_screen_text("<span class='maptext' style=font-size:24pt;text-align:left valign='top'><u>OVERWATCH</u></span><br>" + "New Destination has been added to the Normandy, take off and destroy them to the end", /atom/movable/screen/text/screen_text/picture/potrait)

xeno_victory_point += ((phorone_sensors + platinum_sensors) - sensors_activated) * (points_check_interval / 10)
if(xeno_victory_point >= points_to_win && !allow_hijack)
allow_hijack = TRUE
for(var/mob/living/carbon/xenomorph/xeno AS in GLOB.alive_xeno_list_hive[XENO_HIVE_NORMAL])
xeno.playsound_local(xeno, "sound/voice/alien_hiss1.ogg", 10, 1)
xeno.play_screen_text("<span class='maptext' style=font-size:24pt;text-align:left valign='top'><u>HIVEMIND</u></span><br>" + "We have enough strength. Hijack a bird freely", /atom/movable/screen/text/screen_text/picture/potrait/queen_mother)

/datum/game_mode/infestation/distress/points_defence/siloless_hive_collapse()
return

/datum/game_mode/infestation/distress/points_defence/get_siloless_collapse_countdown()
return

/datum/game_mode/infestation/distress/points_defence/update_silo_death_timer(datum/hive_status/silo_owner)
return

///Add gamemode related items to statpanel
/datum/game_mode/infestation/distress/points_defence/get_status_tab_items(datum/dcs, mob/source, list/items)
. = ..()
if(isobserver(source))
items +="Marine victory points: [marine_victory_point]"
items +="Xeno victory points: [xeno_victory_point]"
else
if(isxeno(source))
items +="Victory points: [xeno_victory_point]"
else
items +="Victory points: [marine_victory_point]"

///Add gamemode related items to statpanel
/datum/game_mode/infestation/distress/points_defence/proc/start_hunt()
//marine announce
for(var/mob/living/carbon/human/human AS in GLOB.alive_human_list)
if(human.faction == FACTION_TERRAGOV)
human.playsound_local(human, "sound/effects/CIC_order.ogg", 10, 1)
human.play_screen_text("<span class='maptext' style=font-size:24pt;text-align:left valign='top'><u>OVERWATCH</u></span><br>" + "New Destination has been added to the Normandy, take off and destroy them to the end", /atom/movable/screen/text/screen_text/picture/potrait)
round_stage = INFESTATION_MARINE_DEN_RUSH

/datum/game_mode/infestation/distress/points_defence/proc/can_hunt()
if(marine_victory_point >= points_to_win && round_stage != INFESTATION_MARINE_DEN_RUSH)
return TRUE
return FALSE

/datum/game_mode/infestation/distress/points_defence/proc/allow_hijack()
return allow_hijack
2 changes: 2 additions & 0 deletions code/datums/round_statistics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,5 @@ GLOBAL_DATUM_INIT(round_statistics, /datum/round_statistics, new)
var/psy_lances = 0
var/psy_shields = 0
var/psy_shield_blasts = 0
var/larva_from_towers = 0
var/points_from_towers = 0
Loading
Loading