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

Xeno Alliance Announcements + Greeno Civil War #3990

Merged
merged 40 commits into from
Jul 28, 2023
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f662e58
test
ihatethisengine Jul 24, 2023
4d46b45
many changes
Jul 25, 2023
0328500
final?
Jul 25, 2023
6f066b2
ohhh
Jul 25, 2023
9d41561
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 25, 2023
824eedb
fixes
Jul 25, 2023
7b5bb00
tgui_alert
Jul 25, 2023
2335569
corrupted
Jul 25, 2023
3883159
bug bad
Jul 25, 2023
6f49e80
renegade proper ally check
Jul 25, 2023
b607f50
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 25, 2023
d602bb3
allies
Jul 25, 2023
c16f4a2
renegade iff
Jul 25, 2023
3f1addf
More IFF stuff
Jul 25, 2023
38e46ee
no facehuggers
Jul 25, 2023
224aca0
Merge branch 'master' into hivewars
ihatethisengine Jul 25, 2023
271586e
hivemind nerf
Jul 25, 2023
918491e
eh
Jul 25, 2023
3f1b338
new check
Jul 25, 2023
d5568e0
heal off weeds
Jul 26, 2023
1b175ff
fx
Jul 26, 2023
947dd1e
no heal off weeds
Jul 26, 2023
4c51ba0
revert
Jul 26, 2023
6d0ed5c
Update code/modules/mob/living/carbon/xenomorph/damage_procs.dm
ihatethisengine Jul 27, 2023
defa311
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 27, 2023
35a3d2c
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 27, 2023
58e72b0
Update code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm
ihatethisengine Jul 27, 2023
df3d75f
Update code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm
ihatethisengine Jul 27, 2023
c86c4ae
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 27, 2023
0e991d4
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 27, 2023
ff20304
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 28, 2023
982352b
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 28, 2023
0a90371
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 28, 2023
98ff8ce
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 28, 2023
6d44221
Update code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
ihatethisengine Jul 28, 2023
ef631bc
+hrp
Jul 28, 2023
3917a3a
++hrp
Jul 28, 2023
6ef551d
fixes
Jul 28, 2023
cf36f2e
Apply suggestions from code review
ihatethisengine Jul 28, 2023
c706241
Apply suggestions from code review
ihatethisengine Jul 28, 2023
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
3 changes: 2 additions & 1 deletion code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,9 @@
#define XENO_HIVE_MUTATED "xeno_hive_mutated"
#define XENO_HIVE_FORSAKEN "xeno_hive_forsaken"
#define XENO_HIVE_YAUTJA "xeno_hive_yautja"
#define XENO_HIVE_RENEGADE "xeno_hive_renegade"

#define ALL_XENO_HIVES list(XENO_HIVE_NORMAL, XENO_HIVE_CORRUPTED, XENO_HIVE_ALPHA, XENO_HIVE_BRAVO, XENO_HIVE_CHARLIE, XENO_HIVE_DELTA, XENO_HIVE_FERAL, XENO_HIVE_TAMED, XENO_HIVE_MUTATED, XENO_HIVE_FORSAKEN, XENO_HIVE_YAUTJA)
#define ALL_XENO_HIVES list(XENO_HIVE_NORMAL, XENO_HIVE_CORRUPTED, XENO_HIVE_ALPHA, XENO_HIVE_BRAVO, XENO_HIVE_CHARLIE, XENO_HIVE_DELTA, XENO_HIVE_FERAL, XENO_HIVE_TAMED, XENO_HIVE_MUTATED, XENO_HIVE_FORSAKEN, XENO_HIVE_YAUTJA, XENO_HIVE_RENEGADE)

//=================================================

Expand Down
3 changes: 2 additions & 1 deletion code/_globalvars/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,8 @@ GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list(
XENO_HIVE_TAMED = new /datum/hive_status/corrupted/tamed(),
XENO_HIVE_MUTATED = new /datum/hive_status/mutated(),
XENO_HIVE_FORSAKEN = new /datum/hive_status/forsaken(),
XENO_HIVE_YAUTJA = new /datum/hive_status/yautja()
XENO_HIVE_YAUTJA = new /datum/hive_status/yautja(),
XENO_HIVE_RENEGADE = new /datum/hive_status/corrupted/renegade(),
))

GLOBAL_LIST_INIT(xeno_evolve_times, setup_xeno_evolve_times())
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/carbon/xenomorph/hive_faction.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,5 @@ GLOBAL_LIST_INIT(hive_alliable_factions, generate_alliable_factions())

var/should_ally = text2num(params["should_ally"])
assoc_hive.allies[params["target_faction"]] = should_ally
assoc_hive.on_stance_change(params["target_faction"])
. = TRUE
97 changes: 97 additions & 0 deletions code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1066,6 +1066,8 @@

need_round_end_check = TRUE

var/list/renegades = list()

/datum/hive_status/corrupted/add_xeno(mob/living/carbon/xenomorph/X)
. = ..()
X.add_language(LANGUAGE_ENGLISH)
Expand Down Expand Up @@ -1250,6 +1252,101 @@

return ..()

/datum/hive_status/corrupted/renegade
name = "Renegade Hive"
reporting_id = "renegade"
hivenumber = XENO_HIVE_RENEGADE
prefix = "Renegade "
color = "#9c7a4d"
ui_color ="#80705c"

dynamic_evolution = FALSE
allow_no_queen_actions = TRUE
allow_queen_evolve = FALSE
ignore_slots = TRUE
latejoin_burrowed = FALSE

/datum/hive_status/corrupted/renegade/New()
. = ..()
hive_structures_limit[XENO_STRUCTURE_EGGMORPH] = 0
hive_structures_limit[XENO_STRUCTURE_EVOPOD] = 0
allies[FACTION_MARINE] = TRUE

/datum/hive_status/corrupted/renegade/faction_is_ally(faction, ignore_queen_check = TRUE)
return . = ..()
Drulikar marked this conversation as resolved.
Show resolved Hide resolved

/datum/hive_status/proc/on_stance_change(faction)
if(!living_xeno_queen)
return
if(allies[faction])
xeno_message(SPAN_XENOANNOUNCE("Your Queen set up alliance with [faction]!"), 3, hivenumber)
else
xeno_message(SPAN_XENOANNOUNCE("Your Queen broke alliance with [faction]!"), 3, hivenumber)
ihatethisengine marked this conversation as resolved.
Show resolved Hide resolved

for(var/number in GLOB.hive_datum)
var/datum/hive_status/target_hive = GLOB.hive_datum[number]
if(target_hive.name != faction)
continue
if(!target_hive.living_xeno_queen && !target_hive.allow_no_queen_actions)
return
if(allies[faction])
xeno_message(SPAN_XENOANNOUNCE("You sense that [name] Queen set up alliance with us!"), 3, target_hive.hivenumber)
return
else
xeno_message(SPAN_XENOANNOUNCE("You sense that [name] Queen broke alliance with us!"), 3, target_hive.hivenumber)
return
ihatethisengine marked this conversation as resolved.
Show resolved Hide resolved

/datum/hive_status/corrupted/on_stance_change(faction)
. = ..()
if(allies[faction] || faction != FACTION_MARINE)
return

for(var/mob/living/carbon/xenomorph/xeno in totalXenos) // handle defecting xenos on betrayal
if(!xeno.iff_tag)
continue
if(!(faction in xeno.iff_tag.faction_groups))
continue
if(xeno in renegades)
continue
if(xeno.caste_type == XENO_CASTE_QUEEN)
continue
INVOKE_ASYNC(src, PROC_REF(give_defection_choice), xeno, faction)
addtimer(CALLBACK(src, PROC_REF(handle_renegades), faction), 11 SECONDS)

/datum/hive_status/corrupted/proc/give_defection_choice(mob/living/carbon/xenomorph/xeno, faction)
if(tgui_alert(xeno, "Your Queen has broken alliance with [faction]. Your IFF tag begins to suppress your connection with the hive. Do you wish to remove the tag and stay with Queen or do you wish to stay loyal to your new masters? You have 10 seconds to decide.", "Choose", list("Stay with Queen", "Stay with your masters"), 10 SECONDS) == "Stay with your masters")
ihatethisengine marked this conversation as resolved.
Show resolved Hide resolved
if(!xeno.iff_tag)
to_chat(xeno, SPAN_XENOWARNING("It's too late now. Your IFF tag is broken and your service to the Queen continues."))
return
renegades += xeno
xeno.set_hive_and_update(XENO_HIVE_RENEGADE)
to_chat(xeno, SPAN_XENOANNOUNCE("You lost connection with your hive. Now there is no Queen, only masters."))
ihatethisengine marked this conversation as resolved.
Show resolved Hide resolved
return
xeno.visible_message(SPAN_XENOWARNING("\The [xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("You rip out [xeno.iff_tag]! For the hive!"))
ihatethisengine marked this conversation as resolved.
Show resolved Hide resolved
xeno.iff_tag = null


/datum/hive_status/corrupted/proc/handle_renegades(faction)
for(var/mob/living/carbon/xenomorph/xeno in totalXenos)
if(!xeno)
continue
if(xeno.stat == DEAD)
continue
if(!xeno.iff_tag)
continue
if(xeno in renegades)
continue
if(!(faction in xeno.iff_tag.faction_groups))
continue
xeno.visible_message(SPAN_XENOWARNING("\The [xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("You rip out [xeno.iff_tag]! For the hive!"))
ihatethisengine marked this conversation as resolved.
Show resolved Hide resolved
xeno.iff_tag = null
Drulikar marked this conversation as resolved.
Show resolved Hide resolved

if(!length(renegades))
return

xeno_message(SPAN_XENOANNOUNCE("You sense that [renegades.Join(", ")] turned their backs against their sisters and the Queen in favor of their slavemasters!"), 3, hivenumber)
renegades = list()

//Xeno Resin Mark Shit, the very best place for it too :0)
//Defines at the bottom of this list here will show up at the top in the mark menu
/datum/xeno_mark_define
Expand Down