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:
vageyenaman@gmail.com
2011-07-09 22:11:46 +00:00
parent 9de83c2aae
commit 4d60c67d1a
22 changed files with 320 additions and 38 deletions
+11
View File
@@ -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
+38 -3
View File
@@ -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)