diff --git a/code/modules/autowiki/pages/xeno_stats.dm b/code/modules/autowiki/pages/xeno_stats.dm new file mode 100644 index 000000000000..a6039ed6ba78 --- /dev/null +++ b/code/modules/autowiki/pages/xeno_stats.dm @@ -0,0 +1,54 @@ +/datum/autowiki/xeno_stats + generate_multiple = TRUE + page = "Template:Autowiki/Content/XenoStats" + +/datum/autowiki/xeno_stats/generate_multiple() + var/output = list() + + for(var/mob/living/carbon/xenomorph/xeno as anything in subtypesof(/mob/living/carbon/xenomorph)) + if(IS_AUTOWIKI_SKIP(xeno)) + continue + + var/mob/living/carbon/xenomorph/xeno_instance = new xeno() + + var/strains = list(null) + xeno_instance.caste.available_strains + for(var/datum/xeno_strain/strain as anything in strains) + var/datum/xeno_strain/strain_instance = null + if(!isnull(strain)) + strain_instance = new strain() + + output += template_from_xeno(xeno_instance, strain_instance) + + qdel(strain_instance) + + qdel(xeno_instance) + + return output + +/datum/autowiki/xeno_stats/proc/template_from_xeno(mob/living/carbon/xenomorph/xeno, datum/xeno_strain/strain) + var/name = xeno.caste_type + if(!isnull(strain)) + strain.apply_strain(xeno) + name = "[strain.name] [name]" + + var/xeno_data = list( + "name" = name, + "health" = xeno.maxHealth, + "armor" = xeno.armor_deflection, + "plasma" = xeno.plasma_max, + "plasma_regeneration" = xeno.plasma_gain, + "minimum_slash_damage" = xeno.melee_damage_lower, + "maximum_slash_damage" = xeno.melee_damage_upper, + "claw_strength" = xeno.claw_type, + "evasion" = xeno.evasion, + // Mob speed is relatively non-obvious, we we convert it into a very intuitive + // range for wiki-readability. + "speed" = humanize_speed(xeno.speed), + "explosion_resistance" = xeno.caste.xeno_explosion_resistance, + ) + + var/sanitized_name = url_encode(replacetext(name, " ", "_")) + return list(list(title = "Tempalte:AutoWiki/Content/XenoStats/[sanitized_name]", text = include_template("Autowiki/XenoStats", xeno_data))) + +/datum/autowiki/xeno_stats/proc/humanize_speed(speed) + return speed * -1 + 1 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm index e6c4a76c9353..12d94f0d5ec2 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm @@ -83,6 +83,7 @@ weed_food_states_flipped = list("Drone_1","Drone_2","Drone_3") /mob/living/carbon/xenomorph/drone/tutorial + AUTOWIKI_SKIP(TRUE) /mob/living/carbon/xenomorph/drone/tutorial/gib(datum/cause_data/cause = create_cause_data("gibbing", src)) death(cause, 1) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm index 9d42eb982d2e..17ec90a96bda 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm @@ -18,6 +18,8 @@ minimap_icon = "facehugger" /mob/living/carbon/xenomorph/facehugger + AUTOWIKI_SKIP(TRUE) + name = XENO_CASTE_FACEHUGGER caste_type = XENO_CASTE_FACEHUGGER speak_emote = list("hisses") diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm index 7df87f63cf3a..6ad08817f84a 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm @@ -30,6 +30,8 @@ minimap_icon = "hellhound" /mob/living/carbon/xenomorph/hellhound + AUTOWIKI_SKIP(TRUE) + caste_type = XENO_CASTE_HELLHOUND name = XENO_CASTE_HELLHOUND desc = "A disgusting beast from hell, it has four menacing spikes growing from its head." diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm index 8dc427e2c55e..3f873f3635c3 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm @@ -25,6 +25,8 @@ minimum_evolve_time = 0 /mob/living/carbon/xenomorph/larva + AUTOWIKI_SKIP(TRUE) + name = XENO_CASTE_LARVA caste_type = XENO_CASTE_LARVA speak_emote = list("hisses") @@ -68,24 +70,38 @@ pass_flags.flags_can_pass_all = PASS_ALL^PASS_OVER_THROW_ITEM /mob/living/carbon/xenomorph/larva/corrupted + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_CORRUPTED /mob/living/carbon/xenomorph/larva/alpha + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_ALPHA /mob/living/carbon/xenomorph/larva/bravo + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_BRAVO /mob/living/carbon/xenomorph/larva/charlie + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_CHARLIE /mob/living/carbon/xenomorph/larva/delta + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_DELTA /mob/living/carbon/xenomorph/larva/mutated + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_MUTATED /mob/living/carbon/xenomorph/larva/predalien + AUTOWIKI_SKIP(TRUE) + icon_xeno = 'icons/mob/xenos/predalien_larva.dmi' icon_state = "Predalien Larva" caste_type = XENO_CASTE_PREDALIEN_LARVA diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm index b60f150c442d..8279d1b2ba2e 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm @@ -30,6 +30,8 @@ minimap_icon = "predalien" /mob/living/carbon/xenomorph/predalien + AUTOWIKI_SKIP(TRUE) + caste_type = XENO_CASTE_PREDALIEN name = "Abomination" //snowflake name desc = "A strange looking creature with fleshy strands on its head. It appears like a mixture of armor and flesh, smooth, but well carapaced." @@ -114,6 +116,8 @@ You must still listen to the queen. . += "It has [predalienkills.kills] kills to its name!" /mob/living/carbon/xenomorph/predalien/tutorial + AUTOWIKI_SKIP(TRUE) + should_announce_spawn = FALSE /mob/living/carbon/xenomorph/predalien/tutorial/gib(datum/cause_data/cause = create_cause_data("gibbing", src)) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm index db682e161e87..037c154ab2dc 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm @@ -252,6 +252,8 @@ return ..() /mob/living/carbon/xenomorph/queen + AUTOWIKI_SKIP(TRUE) + caste_type = XENO_CASTE_QUEEN name = XENO_CASTE_QUEEN desc = "A huge, looming alien creature. The biggest and the baddest." @@ -370,28 +372,44 @@ return "heart_t3" /mob/living/carbon/xenomorph/queen/corrupted + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_CORRUPTED /mob/living/carbon/xenomorph/queen/forsaken + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_FORSAKEN /mob/living/carbon/xenomorph/queen/forsaken/combat_ready + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_FORSAKEN queen_aged = TRUE /mob/living/carbon/xenomorph/queen/alpha + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_ALPHA /mob/living/carbon/xenomorph/queen/bravo + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_BRAVO /mob/living/carbon/xenomorph/queen/charlie + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_CHARLIE /mob/living/carbon/xenomorph/queen/delta + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_DELTA /mob/living/carbon/xenomorph/queen/mutated + AUTOWIKI_SKIP(TRUE) + hivenumber = XENO_HIVE_MUTATED /mob/living/carbon/xenomorph/queen/combat_ready diff --git a/colonialmarines.dme b/colonialmarines.dme index 5204acc591c4..92a0889b72ba 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1516,6 +1516,7 @@ #include "code\modules\autowiki\autowiki.dm" #include "code\modules\autowiki\pages\_page.dm" #include "code\modules\autowiki\pages\guns.dm" +#include "code\modules\autowiki\pages\xeno_stats.dm" #include "code\modules\buildmode\bm-mode.dm" #include "code\modules\buildmode\buildmode.dm" #include "code\modules\buildmode\buttons.dm"