mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Viruses:
For some reason, viruses were being "cured" just a bit too fast. I lowered the rate which a virus advanced through stages. I also fixed vaccines; they now actually cure viruses as well as providing immunity to any further infection.
Metroids:
The beginning of my Metroid ranching phase; Metroids may now, theoretically, be tamed to an extent. Baby Metroids are suceptible to simulated discipline, meaning if you beat them over the head with a toolbox for trying to eat your fellow scientists they will probably get the message. This also works when you're trying to wrestle a metroid off of someone's head. Additionally, they may also identify who the people who feed them are and in a situation where they have to fight to defend themselves or eat, they will spare their "friends". This is a pretty big AI change, so if you see any bugs please report them immediately!
Metroids can also "vent-crawl" like monkies, but fully-grown adults are too big to do this. NPC Metroids will never vent-crawl.
Weapons/Guns:
A lot of you are going to like this one; you can no longer shoot yourself with your own gun! This happens sometimes when the game lags up for a bit, but no more!
Additionally, you can now shoot people who are on the ground simply by clicking them. I can only imagine how easy this will make being an officer (or traitor/syndicate) now. This applies to both handheld guns and mecha weapon installments.
Xenobiology:
Scientists now, hopefully, have proper Xenobio access. Metroid dissection has been slightly changed; you can extract Metroid cores from dead Metroids no matter where you're aiming. You will not see me talk about metroid cores anymore because they're a secret. I haven't done anything with them yet, however.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1813 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -237,6 +237,10 @@
|
||||
if(prob(5 + round(power/2)))
|
||||
Metroid.Victim = null
|
||||
Metroid.anchored = 0
|
||||
|
||||
if(prob(80) && !Metroid.client)
|
||||
Metroid.Discipline++
|
||||
|
||||
spawn(0)
|
||||
Metroid.canmove = 0
|
||||
step_away(Metroid, user)
|
||||
@@ -249,6 +253,13 @@
|
||||
if(prob(10 + power*2))
|
||||
Metroid.Victim = null
|
||||
Metroid.anchored = 0
|
||||
|
||||
if(prob(80) && !Metroid.client)
|
||||
Metroid.Discipline++
|
||||
|
||||
if(Metroid.Discipline == 1)
|
||||
Metroid.attacked = 0
|
||||
|
||||
spawn(0)
|
||||
step_away(Metroid, user)
|
||||
Metroid.canmove = 0
|
||||
|
||||
@@ -28,6 +28,10 @@ var/const/PROJECTILE_DART = 8
|
||||
yo = null
|
||||
xo = null
|
||||
current = null
|
||||
turf/original = null
|
||||
|
||||
bumped = 0
|
||||
|
||||
|
||||
weakbullet
|
||||
damage_type = PROJECTILE_WEAKBULLET
|
||||
@@ -59,10 +63,20 @@ var/const/PROJECTILE_DART = 8
|
||||
icon_state = "cbbolt"
|
||||
|
||||
Bump(atom/A as mob|obj|turf|area)
|
||||
if(A == firer)
|
||||
loc = A.loc
|
||||
return // cannot shoot yourself! NO!
|
||||
if(bumped) return
|
||||
|
||||
bumped = 1
|
||||
if(firer && istype(A, /mob))
|
||||
var/mob/M = A
|
||||
if(!silenced)
|
||||
visible_message("\red [A.name] has been shot by [firer.name].", "\blue You hear a [istype(src, /obj/item/projectile/beam) ? "gunshot" : "laser blast"].")
|
||||
/*
|
||||
for(var/mob/O in viewers(M))
|
||||
O.show_message("\red [A.name] has been shot by [firer.name]!", 1) */
|
||||
|
||||
visible_message("\red [A.name] has been shot by [firer.name]!", "\blue You hear a [istype(src, /obj/item/projectile/beam) ? "gunshot" : "laser blast"]!")
|
||||
else
|
||||
M << "\red You've been shot!"
|
||||
if(istype(firer, /mob))
|
||||
@@ -89,13 +103,22 @@ var/const/PROJECTILE_DART = 8
|
||||
|
||||
process()
|
||||
spawn while(src)
|
||||
|
||||
if ((!( current ) || loc == current))
|
||||
current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
|
||||
if ((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
|
||||
del(src)
|
||||
return
|
||||
step_towards(src, current)
|
||||
|
||||
sleep( 1 )
|
||||
|
||||
if(!bumped)
|
||||
if(loc == original)
|
||||
for(var/mob/M in original)
|
||||
Bump(M)
|
||||
sleep( 1 )
|
||||
|
||||
return
|
||||
|
||||
/obj/item/ammo_casing
|
||||
@@ -468,8 +491,8 @@ var/const/PROJECTILE_DART = 8
|
||||
update_icon()
|
||||
|
||||
energy
|
||||
icon_state = "energy"
|
||||
name = "Energy Gun"
|
||||
icon_state = "energy gun"
|
||||
name = "energy gun"
|
||||
desc = "A basic energy-based gun with two settings: Stun and kill."
|
||||
fire_sound = 'Taser.ogg'
|
||||
var
|
||||
@@ -718,6 +741,16 @@ var/const/PROJECTILE_DART = 8
|
||||
return 1
|
||||
return 0
|
||||
|
||||
freeze
|
||||
name = "freeze gun"
|
||||
icon_state = "freezegun100"
|
||||
fire_sound = 'pulse3.ogg'
|
||||
|
||||
attack_self(mob/living/user as mob)
|
||||
return
|
||||
|
||||
|
||||
|
||||
crossbow
|
||||
name = "mini energy-crossbow"
|
||||
desc = "A weapon favored by many of the syndicates stealth specialists."
|
||||
@@ -767,6 +800,7 @@ var/const/PROJECTILE_DART = 8
|
||||
in_chamber = new /obj/item/projectile/electrode(src)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
proc
|
||||
load_into_chamber()
|
||||
in_chamber = new /obj/item/projectile/weakbullet(src)
|
||||
@@ -847,6 +881,7 @@ var/const/PROJECTILE_DART = 8
|
||||
user.bullet_act(in_chamber.damage_type)
|
||||
del(in_chamber)
|
||||
else
|
||||
in_chamber.original = targloc
|
||||
in_chamber.loc = get_turf(user)
|
||||
user.next_move = world.time + 4
|
||||
in_chamber.silenced = silenced
|
||||
|
||||
@@ -210,7 +210,7 @@ CIRCULAR SAW
|
||||
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(user.zone_sel.selecting == "head")
|
||||
if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/metroid))
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H) && ( \
|
||||
@@ -237,7 +237,8 @@ CIRCULAR SAW
|
||||
M << "\red [user] begins to cut open your flesh with [src]!"
|
||||
user << "\red You cut [M]'s flesh open with [src]!"
|
||||
M:brain_op_stage = 1.0
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
@@ -275,15 +276,15 @@ CIRCULAR SAW
|
||||
M << "\red [user] begins to cut apart your innards with [src]!"
|
||||
user << "\red You cut [M]'s silky innards apart with [src]!"
|
||||
M:brain_op_stage = 2.0
|
||||
return
|
||||
return
|
||||
if(2.0)
|
||||
if(istype(M, /mob/living/carbon/metroid))
|
||||
if(M.stat == 2)
|
||||
var/mob/living/carbon/metroid/Metroid = M
|
||||
if(Metroid.cores > 0)
|
||||
if(istype(M, /mob/living/carbon/metroid))
|
||||
user << "\red You attempt to remove [M]'s core, but your [src] is ineffective!"
|
||||
return
|
||||
user << "\red You attempt to remove [M]'s core, but [src] is ineffective!"
|
||||
return
|
||||
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
@@ -387,7 +388,7 @@ CIRCULAR SAW
|
||||
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(user.zone_sel.selecting == "head")
|
||||
if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/metroid))
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H) && ( \
|
||||
@@ -454,7 +455,7 @@ CIRCULAR SAW
|
||||
if(Metroid.cores <= 0)
|
||||
M.icon_state = "baby metroid dead-nocore"
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
if(3.0)
|
||||
if(M != user)
|
||||
|
||||
Reference in New Issue
Block a user