Merge branch 'organremoval' of https://github.com/Zuhayr/Baystation12 into dev

First pass on major conversion of xenomorphs to a human subspecies. Additional condensing of various redundant mob verbs.
Converted larva and diona to their own class, collapsed the rest of xenomorphs into a human species, other stuff.
Completely removed attack_alien(). Still have to reimplement some of the lost behavior for human/alien.
Reapplies lost attack_alien() functionality other than tackling/caressing.
Further alien/humanoid cleanup and xenospawn fix-ups. Also uncommented caste verbs.
Removed half-finished abilities system since species.dm handles it.
All xenomorphs functionality should be working now, other than the HUD, tackling and the xenomorph balance issues.
Added icons for xenomorph castes, moved broadcast languages into datums, removed alien_talk and robot_talk vars.
Merged with organ removal code.
Reapplied verbs to simple_animals/slimes. Updated species definitions to have appropriate organs.
Readded tackle as a human verb.
Borer changes regarding brain removal.
Working on moving the human HUD to the species datum a bit. Mixed results.
Moved Cortical Link to a language, added borer husks.
Tidied up the HUD stuff. Still need to make it rebuild properly when species is changed, but this will do for no
Compile fix, forgot the DME.
Fixed up ventcrawl, added new organ mechanics for dionaea.
Fixed up some overlooked sections causing mobs without brains to die immediately.
Fixed up plasma generation for queens, bugs with organs, force_organ issues with set_species().
This commit is contained in:
Zuhayr
2014-09-29 00:40:24 +09:30
parent 786e67e94b
commit 223bd86f18
172 changed files with 4201 additions and 7456 deletions

View File

@@ -0,0 +1,164 @@
//DIONA ORGANS.
/datum/organ/internal/diona
removed_type = /obj/item/organ/diona
/datum/organ/internal/diona/process()
return
/datum/organ/internal/diona/nutrients
name = "nutrient vessel"
parent_organ = "chest"
/datum/organ/internal/diona/strata
name = "neural strata"
parent_organ = "chest"
/datum/organ/internal/diona/node
name = "receptor node"
parent_organ = "head"
/datum/organ/internal/diona/bladder
name = "gas bladder"
parent_organ = "head"
/datum/organ/internal/diona/polyp
name = "polyp segment"
parent_organ = "groin"
/datum/organ/internal/diona/ligament
name = "anchoring ligament"
parent_organ = "groin"
/obj/item/organ/diona
name = "diona nymph"
icon = 'icons/obj/objects.dmi'
icon_state = "nymph"
/obj/item/organ/diona/removed(var/mob/living/target,var/mob/living/user)
var/mob/living/carbon/human/H = target
if(!istype(target))
del(src)
if(!H.internal_organs.len)
H.death()
//This is a terrible hack and I should be ashamed.
var/datum/seed/diona = seed_types["diona"]
if(!diona)
del(src)
var/mob/living/carbon/alien/diona/D = new(get_turf(src))
diona.request_player(D)
del(src)
//CORTICAL BORER ORGANS.
/datum/organ/internal/borer
name = "cortical borer"
parent_organ = "head"
removed_type = /obj/item/organ/borer
vital = 1
/datum/organ/internal/borer/process()
// Borer husks regenerate health, feel no pain, and are resistant to stuns and brainloss.
for(var/chem in list("tricordrazine","tramadol","hyperzine","alkysine"))
if(owner.reagents.get_reagent_amount(chem) < 3)
owner.reagents.add_reagent(chem, 5)
// They're also super gross and ooze ichor.
if(prob(5))
var/obj/effect/decal/cleanable/blood/splatter/goo = new(get_turf(owner))
goo.name = "husk ichor"
goo.desc = "It's thick and stinks of decay."
goo.basecolor = "#412464"
goo.update_icon()
/obj/item/organ/borer
name = "cortical borer"
icon = 'icons/obj/objects.dmi'
icon_state = "borer"
organ_tag = "brain"
desc = "A disgusting space slug."
/obj/item/organ/borer/removed(var/mob/living/target,var/mob/living/user)
..()
var/mob/living/simple_animal/borer/B = target.has_brain_worms()
if(B)
B.leave_host()
B.ckey = target.ckey
spawn(0)
del(src)
//XENOMORPH ORGANS
/datum/organ/internal/xenos/eggsac
name = "egg sac"
parent_organ = "groin"
removed_type = /obj/item/organ/xenos/eggsac
/datum/organ/internal/xenos/plasmavessel
name = "plasma vessel"
parent_organ = "chest"
removed_type = /obj/item/organ/xenos/plasmavessel
var/stored_plasma = 0
var/max_plasma = 500
/datum/organ/internal/xenos/plasmavessel/queen
name = "bloated plasma vessel"
stored_plasma = 200
max_plasma = 500
/datum/organ/internal/xenos/plasmavessel/sentinel
stored_plasma = 100
max_plasma = 250
/datum/organ/internal/xenos/plasmavessel/hunter
name = "tiny plasma vessel"
stored_plasma = 100
max_plasma = 150
/datum/organ/internal/xenos/acidgland
name = "acid gland"
parent_organ = "head"
removed_type = /obj/item/organ/xenos/acidgland
/datum/organ/internal/xenos/hivenode
name = "hive node"
parent_organ = "chest"
removed_type = /obj/item/organ/xenos/hivenode
/datum/organ/internal/xenos/resinspinner
name = "resin spinner"
parent_organ = "head"
removed_type = /obj/item/organ/xenos/resinspinner
/obj/item/organ/xenos
name = "xeno organ"
icon = 'icons/effects/blood.dmi'
desc = "It smells like an accident in a chemical factory."
organ_tag = "special" //TODO functionality for transplants.
/obj/item/organ/xenos/eggsac
name = "egg sac"
icon_state = "xgibmid1"
/obj/item/organ/xenos/plasmavessel
name = "plasma vessel"
icon_state = "xgibdown"
/obj/item/organ/xenos/acidgland
name = "acid gland"
icon_state = "xgibtorso"
/obj/item/organ/xenos/hivenode
name = "hive node"
icon_state = "xgibmid2"
/obj/item/organ/xenos/resinspinner
name = "hive node"
icon_state = "xgibmid2"

View File

@@ -2,7 +2,7 @@
INTERNAL ORGANS
****************************************************/
/mob/living/carbon/human/var/list/internal_organs = list()
/mob/living/carbon/var/list/internal_organs = list()
/datum/organ/internal
var/damage = 0 // amount of damage to the organ