mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 06:57:42 +01:00
Changeling DNA fixes
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user