Changeling DNA fixes

This commit is contained in:
Markolie
2015-01-13 20:17:00 +01:00
parent bde14e78b3
commit 6a0d3a60b7
7 changed files with 39 additions and 15 deletions
+12 -8
View File
@@ -66,10 +66,12 @@ var/list/teleportlocs = list()
for(var/area/AR in world)
if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)) continue
if(teleportlocs.Find(AR.name)) continue
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z == 1)
teleportlocs += AR.name
teleportlocs[AR.name] = AR
var/list/turfs = get_area_turfs(AR.type)
if(turfs.len)
var/turf/picked = pick(turfs)
if (picked.z == 1)
teleportlocs += AR.name
teleportlocs[AR.name] = AR
teleportlocs = sortAssoc(teleportlocs)
@@ -83,10 +85,12 @@ var/list/ghostteleportlocs = list()
if(istype(AR, /area/turret_protected/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome))
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z == 1 || picked.z == 5 || picked.z == 3)
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
var/list/turfs = get_area_turfs(AR.type)
if(turfs.len)
var/turf/picked = pick(turfs)
if (picked.z == 1 || picked.z == 5 || picked.z == 3)
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
ghostteleportlocs = sortAssoc(ghostteleportlocs)
@@ -9,6 +9,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
config_tag = "changeling"
restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent")
protected_species = list("Machine")
required_players = 2
required_players_secret = 10
required_enemies = 1
@@ -268,6 +268,9 @@
src.dna = chosen_dna.Clone()
src.real_name = chosen_dna.real_name
src.flavor_text = ""
if(ishuman(src))
var/mob/living/carbon/human/H = src
H.set_species()
src.UpdateAppearance()
domutcheck(src, null)
+4 -3
View File
@@ -22,7 +22,8 @@
var/explosion_in_progress = 0 //sit back and relax
var/list/datum/mind/modePlayer = new
var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist
var/list/protected_jobs = list() // Jobs that can't be trators
var/list/protected_jobs = list() // Jobs that can't be traitors
var/list/protected_species = list() // Species that can't be traitors
var/required_players = 0
var/required_players_secret = 0 //Minimum number of players for that game mode to be chose in Secret
var/required_enemies = 0
@@ -356,9 +357,9 @@ Implants;
// Shuffle the players list so that it becomes ping-independent.
players = shuffle(players)
// Get a list of all the people who want to be the antagonist for this round
// Get a list of all the people who want to be the antagonist for this round, except those with incompatible species
for(var/mob/new_player/player in players)
if(player.client.prefs.be_special & role)
if(player.client.prefs.be_special & role && !(player.client.prefs.species in protected_species))
log_debug("[player.key] had [roletext] enabled, so we are drafting them.")
candidates += player.mind
players -= player
@@ -1338,6 +1338,17 @@
spawn(0)
update_icons()
if(species && species.flags & NO_BLOOD) //We want the var for safety but we can do without the actual blood.
if(vessel.has_reagent("water") || vessel.has_reagent("blood"))
var/water = vessel.get_reagent_amount("water")
var/blood = vessel.get_reagent_amount("blood")
vessel.remove_reagent("water",water)
vessel.remove_reagent("blood",blood)
if(species.bloodflags & BLOOD_SLIME)
vessel.add_reagent("water",560-vessel.total_volume)
else
vessel.add_reagent("blood",560-vessel.total_volume)
fixblood()
if(species)
return 1
+7 -3
View File
@@ -19,9 +19,13 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
vessel = new/datum/reagents(600)
vessel.my_atom = src
if(species && species.flags & NO_BLOOD) //We want the var for safety but we can do without the actual blood.
return
if(species.bloodflags &BLOOD_SLIME)
if(species && species.flags & NO_BLOOD) //In case of transformation to IPC
if(vessel.has_reagent("water") || vessel.has_reagent("blood"))
var/water = vessel.get_reagent_amount("water")
var/blood = vessel.get_reagent_amount("blood")
vessel.remove_reagent("water",water)
vessel.remove_reagent("blood",blood)
if(species.bloodflags & BLOOD_SLIME)
vessel.add_reagent("water",560)
else
vessel.add_reagent("blood",560)
@@ -45,7 +45,7 @@
category = list("Misc","Power")
/datum/design/pacman
name = "Machien Board (PACMAN-type Generator)"
name = "Machine Board (PACMAN-type Generator)"
desc = "The circuit board that for a PACMAN-type portable generator."
id = "pacman"
req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)