Skip to content

Commit

Permalink
Cleaned up:
Browse files Browse the repository at this point in the history
Flashlights
Cigs/lighters
Solars

RCDs can no longer build airlocks on doors
Airlocks  now smash glass that is under them when they close
AI sat firewall that is not really quite a firewall removed
The solars will no longer update if they lack a controler
Cut down on machines that don't actually do anything like fake sleepers and shuttle engines
There is still a few shuttle engines around and I have no idea where, my map was already corrupted once by this so I am just leaving the define in for now.

After a talk with some of the head coders
Cyborgs can no longer be traitors at round start
Some of the off Z1 areas cleaned up


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2028 316c924e-a436-60f5-8080-3fe189b3f50e
  • Loading branch information
mport2004@gmail.com committed Aug 20, 2011
1 parent 39e3cbe commit c526717
Show file tree
Hide file tree
Showing 40 changed files with 9,706 additions and 9,895 deletions.
307 changes: 307 additions & 0 deletions code/WorkInProgress/minihivebottest.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,307 @@
/obj/item/projectile/hivebotbullet
damage = 5
mobdamage = list(BRUTE = 5, BURN = 0, TOX = 0, OXY = 0, CLONE = 0)

/obj/minihivebot/
name = "Hivebot"
desc = "A small robot"
icon = 'Hivebot.dmi'
icon_state = "basic"
layer = 5.0
density = 1
anchored = 0
var
alive = 1
health = 10
task = "thinking"
aggressive = 1
wanderer = 1
opensdoors = 1
frustration = 0
last_found = null
target = null
oldtarget_name = null
target_lastloc = null
atkcarbon = 1
atksilicon = 0
attack = 0
attacking = 0
steps = 0
firevuln = 0.5
brutevuln = 1
seekrange = 7
basic_damage = 2


attackby(obj/item/weapon/W as obj, mob/living/user as mob)
..()
if (!src.alive) return
switch(W.damtype)
if("fire") src.health -= W.force * src.firevuln
if("brute") src.health -= W.force * src.brutevuln
if (src.alive && src.health <= 0) src.Die()


attack_hand(var/mob/user as mob)
if (!src.alive) return
if (user.a_intent == "hurt")
src.health -= 1 * src.brutevuln
for(var/mob/O in viewers(src, null))
O.show_message("\red <b>[user]</b> punches [src]!", 1)
playsound(src.loc, pick('punch1.ogg','punch2.ogg','punch3.ogg','punch4.ogg'), 100, 1)
if (src.alive && src.health <= 0) src.Die()


proc/patrol_step()
var/moveto = locate(src.x + rand(-1,1),src.y + rand(-1, 1),src.z)
if (istype(moveto, /turf/simulated/floor) || istype(moveto, /turf/simulated/shuttle/floor) || istype(moveto, /turf/unsimulated/floor)) step_towards(src, moveto)
if(src.aggressive) seek_target()
steps += 1
if (steps == rand(5,20)) src.task = "thinking"


Bump(M as mob|obj)
spawn(0)
if ((istype(M, /obj/machinery/door)))
var/obj/machinery/door/D = M
if (src.opensdoors)
D.open()
src.frustration = 0
else src.frustration ++
else if ((istype(M, /mob/living/)) && (!src.anchored))
src.loc = M:loc
src.frustration = 0
return
return


Bumped(M as mob|obj)
spawn(0)
var/turf/T = get_turf(src)
M:loc = T


bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
if(src.health <= 0)
src.Die()


ex_act(severity)
switch(severity)
if(1.0)
src.Die()
return
if(2.0)
src.health -= 15
if (src.health <= 0)
src.Die()
return
return


meteorhit()
src.Die()
return


blob_act()
if(prob(25))
src.Die()
return


proc/process()
set background = 1
if (!src.alive) return
switch(task)
if("thinking")
src.attack = 0
src.target = null
sleep(15)
walk_to(src,0)
if (src.aggressive) seek_target()
if (src.wanderer && !src.target) src.task = "wandering"
if("chasing")
if (src.frustration >= 8)
src.target = null
src.last_found = world.time
src.frustration = 0
src.task = "thinking"
walk_to(src,0)
if (target)
if (get_dist(src, src.target) <= 1)
var/mob/living/carbon/M = src.target
ChaseAttack(M)
src.task = "attacking"
src.anchored = 1
src.target_lastloc = M.loc
else
var/turf/olddist = get_dist(src, src.target)
walk_to(src, src.target,1,4)
if ((get_dist(src, src.target)) >= (olddist))
src.frustration++
else
src.frustration = 0
sleep(5)
else src.task = "thinking"
if("attacking")
// see if he got away
if ((get_dist(src, src.target) > 1) || ((src.target:loc != src.target_lastloc)))
src.anchored = 0
src.task = "chasing"
else
if (get_dist(src, src.target) <= 1)
var/mob/living/carbon/M = src.target
if (!src.attacking) RunAttack(src.target)
if (!src.aggressive)
src.task = "thinking"
src.target = null
src.anchored = 0
src.last_found = world.time
src.frustration = 0
src.attacking = 0
else
if(M!=null)
if (M.health < 0)
src.task = "thinking"
src.target = null
src.anchored = 0
src.last_found = world.time
src.frustration = 0
src.attacking = 0
else
src.anchored = 0
src.attacking = 0
src.task = "chasing"
if("wandering")
patrol_step()
sleep(10)
spawn(8)
process()
return


New()
spawn(0) process()
..()


proc/seek_target()
src.anchored = 0
for (var/mob/living/C in view(src.seekrange,src))
if (src.target)
src.task = "chasing"
break
if ((C.name == src.oldtarget_name) && (world.time < src.last_found + 100)) continue
if (istype(C, /mob/living/carbon/) && !src.atkcarbon) continue
if (istype(C, /mob/living/silicon/) && !src.atksilicon) continue
if (C.health < 0) continue
if (istype(C, /mob/living/carbon/) && src.atkcarbon) src.attack = 1
if (istype(C, /mob/living/silicon/) && src.atksilicon) src.attack = 1

if (src.attack)
src.target = C
src.oldtarget_name = C.name
src.task = "chasing"
break
else
continue


proc/Die()
if (!src.alive) return
src.alive = 0
walk_to(src,0)
src.visible_message("<b>[src]</b> blows apart!")
var/turf/Ts = get_turf(src)
new /obj/decal/cleanable/robot_debris(Ts)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
s.set_up(3, 1, src)
s.start()
del(src)


proc/ChaseAttack(mob/M)
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src]</B> leaps at [src.target]!", 1)


proc/RunAttack(mob/M)
src.attacking = 1
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src]</B> claws at [src.target]!", 1)
src.target:bruteloss += basic_damage
spawn(25)
src.attacking = 0

proc/Shoot(var/target, var/start, var/user, var/bullet = 0)
if(target == start)
return

var/obj/item/projectile/hivebotbullet/A = new /obj/item/projectile/hivebotbullet(user:loc)
playsound(user, 'Gunshot.ogg', 100, 1)

if(!A) return

if (!istype(target, /turf))
del(A)
return
A.current = target
A.yo = target:y - start:y
A.xo = target:x - start:x
spawn( 0 )
A.process()
return


/obj/minihivebot/range
name = "Hivebot"
desc = "A smallish robot, this one is armed!"
var/rapid = 0

seek_target()
src.anchored = 0
for (var/mob/living/C in view(src.seekrange,src))
if (!src.alive) break
if (C.health < 0) continue
if (istype(C, /mob/living/carbon/) && src.atkcarbon) src.attack = 1
if (istype(C, /mob/living/silicon/) && src.atksilicon) src.attack = 1

if (src.attack)
src.target = C
src.oldtarget_name = C.name
for(var/mob/O in viewers(src, null))
O.show_message("\red <b>[src]</b> fires at [src.target]!", 1)

var/tturf = get_turf(target)
if(rapid)
spawn(1)
Shoot(tturf, src.loc, src)
spawn(4)
Shoot(tturf, src.loc, src)
spawn(6)
Shoot(tturf, src.loc, src)
else
Shoot(tturf, src.loc, src)

src.attack = 0
sleep(12)
seek_target()
src.task = "thinking"
break
else continue

/obj/minihivebot/range/rapid
rapid = 1

/obj/minihivebot/range/strong
name = "Strong Hivebot"
desc = "A robot, this one is armed and looks tough!"
health = 50

/obj/minihivebot/range/borgkill
name = "Strong Hivebot"
desc = "A robot, this one is armed and looks tough!"
health = 20
atksilicon = 1
3 changes: 2 additions & 1 deletion code/datums/sun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@
T.set_angle(angle)

for(var/obj/machinery/power/solar/S in machines)
occlusion(S)
if(S.control)
occlusion(S)


// for a solar panel, trace towards sun to see if we're in shadow
Expand Down
30 changes: 21 additions & 9 deletions code/defines/client.dm
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
/client
//START Admin Things
//This should be changed to a datum
var/obj/admins/holder = null
var/buildmode = 0
var/stealth = 0
var/fakekey = null
//Hosts can change their color
var/ooccolor = "#b82e00"

//END Admin Things

//Key auth things
authenticate = 0
var/authenticated = 0
var/goon = 0
var/beta_tester = 0
var/authenticating = 0

var/listen_ooc = 1
var/move_delay = 1
var/moving = null
var/vote = null
var/showvote = null
var/adminobs = null
var/deadchat = 0.0
var/changes = 0
Expand All @@ -18,17 +27,20 @@
var/area = null
var/played = 0
var/team = null
var/buildmode = 0
var/stealth = 0
var/fakekey = null
var/warned = 0
var/karma = 0
var/karma_spent = 0
var/ooccolor = "#b82e00" //only used for admins of host level, default is equal to admin default


var/midis = 1 //Check if midis should be played for someone -- Urist
var/bubbles = 1 //Check if bubbles should be displayed for someone -- Doohl
var/be_alien = 0 //Check if that guy wants to be an alien -- Urist

authenticate = 0

var/vote = null
var/showvote = null



// comment out the line below when debugging locally to enable the options & messages menu
control_freak = 1
Loading

0 comments on commit c526717

Please sign in to comment.