mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 07:22:42 +00:00
Removed all the Xcom sprites/code
Removed the gigyas sprite Removed the Vriska sprite Added the (almost finished) displacer. One minor bug with it to work out, does not actually spawn anywhere though so it shouldn't effect anything. Will try to finish it later tonight. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2676 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -1,71 +0,0 @@
|
||||
//XCOM alien code
|
||||
//By Xerif (Donated by the Foundation project, ss13.org)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/special
|
||||
has_fine_manipulation = 1
|
||||
var/xcom_state
|
||||
|
||||
New()
|
||||
..()
|
||||
spawn (1)
|
||||
var/datum/reagents/R = new/datum/reagents(100)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
mind = new()
|
||||
mind.key = key
|
||||
mind.special_role = "Special Xeno"
|
||||
|
||||
name = "[name] ([rand(1, 1000)])"
|
||||
real_name = name
|
||||
|
||||
src.stand_icon = new /icon('xcomalien.dmi', xcom_state)
|
||||
src.lying_icon = new /icon('xcomalien.dmi', xcom_state)
|
||||
src.icon = src.stand_icon
|
||||
|
||||
remove_special_verbs()
|
||||
|
||||
update_clothing()
|
||||
|
||||
death(gibbed)
|
||||
..()
|
||||
spawn(5)
|
||||
gib()
|
||||
|
||||
Stat()
|
||||
statpanel("Status")
|
||||
if (src.client && src.client.holder)
|
||||
stat(null, "([x], [y], [z])")
|
||||
|
||||
stat(null, "Intent: [src.a_intent]")
|
||||
stat(null, "Move Mode: [src.m_intent]")
|
||||
|
||||
if (src.client.statpanel == "Status")
|
||||
if (src.internal)
|
||||
if (!src.internal.air_contents)
|
||||
del(src.internal)
|
||||
else
|
||||
stat("Internal Atmosphere Info", src.internal.name)
|
||||
stat("Tank Pressure", src.internal.air_contents.return_pressure())
|
||||
stat("Distribution Pressure", src.internal.distribute_pressure)
|
||||
return
|
||||
|
||||
alien_talk()
|
||||
if(istype(src, /mob/living/carbon/alien/humanoid/special/etheral))
|
||||
..()
|
||||
return
|
||||
if(istype(src, /mob/living/carbon/alien/humanoid/special/sectoid))
|
||||
..()
|
||||
return
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/humanoid/special/proc/xcom_attack()
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/humanoid/special/proc/remove_special_verbs()
|
||||
verbs -= /mob/living/carbon/alien/humanoid/verb/plant
|
||||
verbs -= /mob/living/carbon/alien/humanoid/verb/ActivateHuggers
|
||||
verbs -= /mob/living/carbon/alien/humanoid/verb/whisp
|
||||
verbs -= /mob/living/carbon/alien/humanoid/verb/transfer_plasma
|
||||
verbs -= /mob/living/carbon/alien/humanoid/verb/corrode
|
||||
return
|
||||
@@ -1,61 +0,0 @@
|
||||
/mob/living/carbon/alien/humanoid/special/chryssalid
|
||||
name = "Chryssalid"
|
||||
desc = "The crab-like claws of this creature are a powerful weapon in close combat. The high metabolism and strength of this creature give it speed and dexterity. Instead of killing its victim it impregnates it with an egg and injects a neurotoxin which turns it into a mindless drone. A new Chryssalid will burst from the victim shortly after impregnation. Chryssalids are associated with the Snakeman race. "
|
||||
xcom_state = "chryssalid"
|
||||
has_fine_manipulation = 0
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/tank/jetpack/jetpack = new(src)
|
||||
jetpack.on = !(jetpack.on)
|
||||
back = jetpack
|
||||
return
|
||||
|
||||
// bullet_act(flags)
|
||||
// take_overall_damage(15,0)
|
||||
// return
|
||||
|
||||
movement_delay()
|
||||
return -5
|
||||
|
||||
handle_regular_status_updates()
|
||||
|
||||
health = 200 - (getOxyLoss() + getFireLoss() + getBruteLoss())
|
||||
|
||||
weakened = 0
|
||||
stunned = 0
|
||||
paralysis = 0
|
||||
|
||||
if(health < -100 || src.brain_op_stage == 4.0)
|
||||
death()
|
||||
else if(src.health < 0)
|
||||
|
||||
if(!src.reagents.has_reagent("plasma")) src.oxyloss++
|
||||
|
||||
if(src.stat != 2) src.stat = 1
|
||||
src.paralysis = max(src.paralysis, 5)
|
||||
|
||||
if(stat == 2)
|
||||
lying = 1
|
||||
|
||||
src.density = !(src.lying )
|
||||
|
||||
return 1
|
||||
|
||||
updatehealth()
|
||||
src.health = 200 - src.getOxyLoss() - src.getFireLoss() - src.getBruteLoss()
|
||||
|
||||
xcom_attack(mob/living/carbon/human/target as mob)
|
||||
if(!ishuman(target))
|
||||
return
|
||||
if(target.stat != 2 || !target.client)
|
||||
target.take_overall_damage(20,0)
|
||||
target.visible_message(pick(
|
||||
"\red <b>[src] tears at [target]!</b>",
|
||||
"\red <b>[src] stabs [target] with it's claws!</b>",
|
||||
"\red <b>[src] slashes [target] with it's claws!</b>"))
|
||||
else
|
||||
if(target.client)
|
||||
target.client.mob = new/mob/living/carbon/alien/humanoid/special/chryssalid(src.loc)
|
||||
target.gib()
|
||||
..()
|
||||
@@ -1,54 +0,0 @@
|
||||
/mob/living/carbon/alien/humanoid/special/etheral
|
||||
name = "Etheral"
|
||||
desc = "The apparently weak physical abilities of this creature are sustained by its mental powers. We do not understand how these telekinetic powers work, since they seem to defy the laws of physics as we know them. "
|
||||
xcom_state = "ethereal"
|
||||
has_fine_manipulation = 0
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/tank/jetpack/jetpack = new(src)
|
||||
jetpack.on = !(jetpack.on)
|
||||
back = jetpack
|
||||
|
||||
mutations |= 1
|
||||
|
||||
spawn(2)
|
||||
name = "Etheral"
|
||||
real_name = "Etheral"
|
||||
return
|
||||
|
||||
movement_delay()
|
||||
return 2
|
||||
|
||||
/mob/living/carbon/alien/humanoid/special/etheral/verb/demoralise()
|
||||
set name = "Psionic Demoralisation"
|
||||
set desc = "Confuses and disorients all humanoids in a small radius."
|
||||
set category = "Etheral"
|
||||
|
||||
if(stat)
|
||||
return
|
||||
|
||||
visible_message("<b>[src]</b> appears to emit strange throbbing waves.")
|
||||
|
||||
for(var/mob/living/carbon/M in view(3, src))
|
||||
if(M == src)
|
||||
continue
|
||||
if(M.confused <= 10)
|
||||
M.confused = 10
|
||||
if(M.eye_blurry <= 10)
|
||||
M.eye_blurry = 10
|
||||
M.drop_item()
|
||||
M << "\red <b>SCREEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE</b>"
|
||||
M << "You clutch your head in agony as your vision blurs and you succumb to disorientation."
|
||||
|
||||
verbs -= /mob/living/carbon/alien/humanoid/special/etheral/verb/demoralise
|
||||
spawn(300)
|
||||
verbs += /mob/living/carbon/alien/humanoid/special/etheral/verb/demoralise
|
||||
|
||||
return
|
||||
|
||||
/atom/attack_alien(mob/user as mob)
|
||||
if(istype(user, /mob/living/carbon/alien/humanoid/special/etheral))
|
||||
attack_ai(user)
|
||||
return
|
||||
..()
|
||||
@@ -1,11 +0,0 @@
|
||||
/mob/living/carbon/alien/humanoid/special/floater
|
||||
name = "Floater"
|
||||
desc = "These aliens are capable or flight through space and shit"
|
||||
xcom_state = "floater"
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/tank/jetpack/jetpack = new(src)
|
||||
jetpack.on = !(jetpack.on)
|
||||
back = jetpack
|
||||
return
|
||||
@@ -1,4 +0,0 @@
|
||||
/mob/living/carbon/alien/humanoid/special/muton
|
||||
name = "Muton"
|
||||
desc = "This humanoid creature is physically powerful and intelligent. They have a particular appetite for consuming raw flesh of any kind, which they need for sustenance like earth based carnivores. "
|
||||
xcom_state = "muton"
|
||||
@@ -1,4 +0,0 @@
|
||||
/mob/living/carbon/alien/humanoid/special/sectoid
|
||||
name = "Sectoid"
|
||||
desc = "The Sectoid hierarchy ranges from soldiers to leaders with powerful psionic abilities. These psionic powers can be used to demoralise opponents in combat, or even take control of their minds."
|
||||
xcom_state = "sectoid"
|
||||
@@ -1,59 +0,0 @@
|
||||
/mob/living/carbon/alien/humanoid/special/snakeman
|
||||
name = "Snakeman"
|
||||
desc = "This race developed in an extremely hostile environment. They are extremely tough and can resist extreme temperature variations. Their mobility depends on a snake-like giant \"foot\" which protects all the vital organs. "
|
||||
xcom_state = "snake"
|
||||
|
||||
movement_delay()
|
||||
return 4
|
||||
|
||||
/mob/living/carbon/alien/humanoid/special/snakeman/verb/lay_egg(mob/living/carbon/human/M as mob)
|
||||
set name = "Impregnate"
|
||||
set desc = "Lays an egg on a corpse, allowing the egg to feed."
|
||||
set category = "Snakeman"
|
||||
|
||||
set src = view(0)
|
||||
|
||||
if(stat)
|
||||
return
|
||||
|
||||
if(!M)
|
||||
return
|
||||
|
||||
if(!M.client)
|
||||
src << "This being is missing a brain."
|
||||
return
|
||||
|
||||
visible_message("[src] extends a probiscis and stabs it into [M]")
|
||||
|
||||
if (!do_mob(usr, M, 50))
|
||||
usr << "\red The injection of the egg has been interrupted!"
|
||||
return
|
||||
|
||||
if(M.client)
|
||||
M.client.mob = new/mob/living/carbon/alien/humanoid/special/snakeman(new/obj/effect/snake_egg(src.loc))
|
||||
visible_message("[src] injects [M] with an egg.")
|
||||
visible_message("The egg absorbs [M]")
|
||||
M.mutations |= HUSK
|
||||
M.update_body()
|
||||
M.death()
|
||||
else
|
||||
src << "This being is missing a brain."
|
||||
|
||||
return
|
||||
|
||||
/obj/effect/snake_egg
|
||||
name = "Egg"
|
||||
icon = 'alien.dmi'
|
||||
icon_state = "egg"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
New()
|
||||
..()
|
||||
|
||||
spawn(300)
|
||||
for(var/mob/M in src)
|
||||
M.loc = src.loc
|
||||
icon_state = "egg_hatched"
|
||||
density = 0
|
||||
return
|
||||
@@ -1060,6 +1060,10 @@
|
||||
if (S.active)
|
||||
shielded = 2
|
||||
break
|
||||
for (var/obj/item/weapon/displacer/D in src)
|
||||
if (D.active)
|
||||
shielded = 4
|
||||
break
|
||||
|
||||
if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_active)
|
||||
shielded = 3
|
||||
@@ -1079,6 +1083,8 @@
|
||||
NinjaStealthActive(loc)
|
||||
else
|
||||
NinjaStealthMalf()
|
||||
if(4)
|
||||
overlays += image("icon" = 'effects.dmi', "icon_state" = "shield-old", "layer" = MOB_LAYER+1)
|
||||
else
|
||||
invisibility = 0
|
||||
/*
|
||||
|
||||
@@ -57,9 +57,24 @@ emp_act
|
||||
if(I.IsShield() && (prob(50 - round(damage / 3))))
|
||||
visible_message("\red <B>[src] blocks [attack_text] with the [r_hand.name]!</B>")
|
||||
return 1
|
||||
if(slot_belt && istype(slot_belt, /obj/item/weapon/displacer))
|
||||
var/obj/item/weapon/displacer/D = slot_belt
|
||||
if(D.active && (prob(50)))
|
||||
visible_message("\red <B>The displacer field flings [src] out of the way of [attack_text]!</B>")
|
||||
var/list/turfs = new/list()
|
||||
for(var/turf/T in orange(6))
|
||||
if(istype(T,/turf/space)) continue
|
||||
if(T.density) continue
|
||||
if(T.x>world.maxx-8 || T.x<8) continue
|
||||
if(T.y>world.maxy-8 || T.y<8) continue
|
||||
turfs += T
|
||||
if(!turfs.len) turfs += pick(/turf in orange(6))
|
||||
var/turf/picked = pick(turfs)
|
||||
if(!isturf(picked)) return
|
||||
src.loc = picked
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/mob/living/carbon/human/emp_act(severity)
|
||||
for(var/obj/O in src)
|
||||
if(!O) continue
|
||||
|
||||
Reference in New Issue
Block a user