Moved some of the old pipe files into unused.
Explosions will delay a bit longer before allowing powernet rebuilds. Removed the Ionstorm Command reports at Urist's request, he said he would add something later. Added dust storms to meteor mode. Fixed most of the runtimes in the latest log. Wizards mind_transfer now needs his robes, this prevents the constant body swap mess. Z 1 lost all of its areas sometime in the last two revs. I think I got everything back in place but would not mind if a mapper took a look. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2037 316c924e-a436-60f5-8080-3fe189b3f50e
@@ -269,4 +269,6 @@
|
||||
|
||||
/proc/blink(atom/A)
|
||||
A.icon += rgb(0,75,75)
|
||||
spawn(10) A.icon = initial(A.icon)
|
||||
spawn(10)
|
||||
if(A)
|
||||
A.icon = initial(A.icon)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
damage = 5
|
||||
mobdamage = list(BRUTE = 5, BURN = 0, TOX = 0, OXY = 0, CLONE = 0)
|
||||
|
||||
/obj/minihivebot/
|
||||
/obj/hivebot
|
||||
name = "Hivebot"
|
||||
desc = "A small robot"
|
||||
icon = 'Hivebot.dmi'
|
||||
@@ -29,30 +29,40 @@
|
||||
steps = 0
|
||||
firevuln = 0.5
|
||||
brutevuln = 1
|
||||
seekrange = 7
|
||||
seekrange = 8
|
||||
basic_damage = 2
|
||||
armor = 5
|
||||
proc
|
||||
patrol_step()
|
||||
process()
|
||||
seek_target()
|
||||
Die()
|
||||
ChaseAttack(mob/M)
|
||||
RunAttack(mob/M)
|
||||
Shoot(var/target, var/start, var/user, var/bullet = 0)
|
||||
TakeDamage(var/damage = 0)
|
||||
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/living/user as mob)
|
||||
..()
|
||||
if (!src.alive) return
|
||||
var/damage = 0
|
||||
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()
|
||||
if("fire") damage = W.force * firevuln
|
||||
if("brute") damage = W.force * brutevuln
|
||||
TakeDamage(damage)
|
||||
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
if (!src.alive) return
|
||||
if (user.a_intent == "hurt")
|
||||
src.health -= 1 * src.brutevuln
|
||||
TakeDamage(2 * 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()
|
||||
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()
|
||||
@@ -82,10 +92,7 @@
|
||||
|
||||
|
||||
bullet_act(var/obj/item/projectile/Proj)
|
||||
health -= Proj.damage
|
||||
if(src.health <= 0)
|
||||
src.Die()
|
||||
|
||||
TakeDamage(Proj.damage)
|
||||
|
||||
ex_act(severity)
|
||||
switch(severity)
|
||||
@@ -93,13 +100,16 @@
|
||||
src.Die()
|
||||
return
|
||||
if(2.0)
|
||||
src.health -= 15
|
||||
if (src.health <= 0)
|
||||
src.Die()
|
||||
TakeDamage(20)
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
emp_act(serverity)
|
||||
src.Die()//Currently why not
|
||||
return
|
||||
|
||||
|
||||
meteorhit()
|
||||
src.Die()
|
||||
return
|
||||
@@ -111,7 +121,7 @@
|
||||
return
|
||||
|
||||
|
||||
proc/process()
|
||||
process()
|
||||
set background = 1
|
||||
if (!src.alive) return
|
||||
switch(task)
|
||||
@@ -187,7 +197,7 @@
|
||||
..()
|
||||
|
||||
|
||||
proc/seek_target()
|
||||
seek_target()
|
||||
src.anchored = 0
|
||||
for (var/mob/living/C in view(src.seekrange,src))
|
||||
if (src.target)
|
||||
@@ -209,7 +219,7 @@
|
||||
continue
|
||||
|
||||
|
||||
proc/Die()
|
||||
Die()
|
||||
if (!src.alive) return
|
||||
src.alive = 0
|
||||
walk_to(src,0)
|
||||
@@ -222,12 +232,22 @@
|
||||
del(src)
|
||||
|
||||
|
||||
proc/ChaseAttack(mob/M)
|
||||
TakeDamage(var/damage = 0)
|
||||
var/tempdamage = (damage-armor)
|
||||
if(tempdamage > 0)
|
||||
src.health -= tempdamage
|
||||
else
|
||||
src.health--
|
||||
if(src.health <= 0)
|
||||
src.Die()
|
||||
|
||||
|
||||
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)
|
||||
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)
|
||||
@@ -235,7 +255,8 @@
|
||||
spawn(25)
|
||||
src.attacking = 0
|
||||
|
||||
proc/Shoot(var/target, var/start, var/user, var/bullet = 0)
|
||||
|
||||
Shoot(var/target, var/start, var/user, var/bullet = 0)
|
||||
if(target == start)
|
||||
return
|
||||
|
||||
@@ -255,7 +276,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/minihivebot/range
|
||||
/obj/hivebot/range
|
||||
name = "Hivebot"
|
||||
desc = "A smallish robot, this one is armed!"
|
||||
var/rapid = 0
|
||||
@@ -292,16 +313,17 @@
|
||||
break
|
||||
else continue
|
||||
|
||||
/obj/minihivebot/range/rapid
|
||||
/obj/hivebot/range/rapid
|
||||
rapid = 1
|
||||
|
||||
/obj/minihivebot/range/strong
|
||||
/obj/hivebot/range/strong
|
||||
name = "Strong Hivebot"
|
||||
desc = "A robot, this one is armed and looks tough!"
|
||||
health = 50
|
||||
armor = 10
|
||||
|
||||
/obj/minihivebot/range/borgkill
|
||||
name = "Strong Hivebot"
|
||||
desc = "A robot, this one is armed and looks tough!"
|
||||
/obj/hivebot/range/borgkill
|
||||
health = 20
|
||||
atksilicon = 1
|
||||
atksilicon = 1
|
||||
|
||||
|
||||
72
code/WorkInProgress/thehive/transport.dm
Normal file
@@ -0,0 +1,72 @@
|
||||
/obj/hivebot/tele//this still needs work
|
||||
name = "Beacon"
|
||||
desc = "Some odd beacon thing"
|
||||
icon = 'Hivebot.dmi'
|
||||
icon_state = "def_radar-off"
|
||||
health = 200
|
||||
task = "thinking"
|
||||
aggressive = 0
|
||||
wanderer = 0
|
||||
armor = 5
|
||||
|
||||
var
|
||||
bot_type = "norm"
|
||||
bot_amt = 10
|
||||
spawn_delay = 600
|
||||
set_spawn = 0
|
||||
auto_spawn = 1
|
||||
proc
|
||||
warpbots()
|
||||
|
||||
|
||||
New()
|
||||
..()
|
||||
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
|
||||
smoke.set_up(5, 0, src.loc)
|
||||
smoke.start()
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <B>The [src] warps in!</B>", 1)
|
||||
playsound(src.loc, 'EMPulse.ogg', 25, 1)
|
||||
if(auto_spawn)
|
||||
spawn(spawn_delay)
|
||||
warpbots()
|
||||
|
||||
|
||||
warpbots()
|
||||
icon_state = "def_radar"
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red The [src] turns on!", 1)
|
||||
while(bot_amt > 0)
|
||||
bot_amt--
|
||||
switch(bot_type)
|
||||
if("norm")
|
||||
new /obj/hivebot(get_turf(src))
|
||||
if("range")
|
||||
new /obj/hivebot/range(get_turf(src))
|
||||
if("rapid")
|
||||
new /obj/hivebot/range/rapid(get_turf(src))
|
||||
spawn(100)
|
||||
del(src)
|
||||
return
|
||||
|
||||
|
||||
process()
|
||||
if(set_spawn)
|
||||
warpbots()
|
||||
..()
|
||||
|
||||
|
||||
/obj/hivebot/tele/massive
|
||||
bot_type = "norm"
|
||||
bot_amt = 30
|
||||
auto_spawn = 0
|
||||
|
||||
|
||||
/obj/hivebot/tele/range
|
||||
bot_type = "range"
|
||||
bot_amt = 10
|
||||
|
||||
|
||||
/obj/hivebot/tele/rapid
|
||||
bot_type = "rapid"
|
||||
bot_amt = 10
|
||||
@@ -57,7 +57,7 @@
|
||||
gibs(T)
|
||||
src.cure(0)
|
||||
gibbed = 1
|
||||
if(!jobban_isbanned(src, "Cyborg"))
|
||||
if(!jobban_isbanned(affected_mob, "Cyborg"))
|
||||
affected_mob:Robotize()
|
||||
else
|
||||
affected_mob.death(1)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 600
|
||||
clothes_req = 0
|
||||
clothes_req = 1
|
||||
invocation = "GIN'YU CAPAN"
|
||||
invocation_type = "whisper"
|
||||
range = 7
|
||||
|
||||
28
code/game/gamemodes/cult/cult_items.dm
Normal file
@@ -0,0 +1,28 @@
|
||||
/obj/item/weapon/melee/cultblade
|
||||
name = "Cult Blade"
|
||||
desc = "An arcane weapon wielded by the followers of Nar-Sie"
|
||||
icon_state = "cultblade"
|
||||
item_state = "cultblade"
|
||||
flags = FPRINT | ONBELT | TABLEPASS
|
||||
force = 40
|
||||
throwforce = 10
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/culthood
|
||||
name = "cult hood"
|
||||
icon_state = "culthood"
|
||||
desc = "A hood worn by the followers of Nar-Sie."
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES
|
||||
armor = list(melee = 30, bullet = 10, laser = 5, taser = 5, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/suit/cultrobes
|
||||
name = "cult robes"
|
||||
desc = "A set of armored robes worn by the followers of Nar-Sie"
|
||||
icon_state = "cultrobes"
|
||||
item_state = "cultrobes"
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
armor = list(melee = 50, bullet = 30, laser = 50, taser = 20, bomb = 25, bio = 10, rad = 0)
|
||||
@@ -29,8 +29,14 @@
|
||||
return 0*/
|
||||
|
||||
/datum/game_mode/meteor/process()
|
||||
if (nometeors) return
|
||||
if (prob(10)) meteor_wave()
|
||||
if(nometeors) return
|
||||
if(prob(80))
|
||||
spawn()
|
||||
dust_swarm("norm")
|
||||
else
|
||||
spawn()
|
||||
dust_swarm("strong")
|
||||
if(prob(10)) meteor_wave()
|
||||
else spawn_meteors()
|
||||
|
||||
/datum/game_mode/meteor/declare_completion()
|
||||
@@ -64,7 +70,7 @@
|
||||
|
||||
..()
|
||||
return 1
|
||||
|
||||
/* This is dealt with in the parents code
|
||||
/datum/game_mode/meteor/send_intercept()
|
||||
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested staus information:</FONT><HR>"
|
||||
intercepttext += "<B> Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:</B>"
|
||||
@@ -90,4 +96,4 @@
|
||||
comm.messagetext.Add(intercepttext)
|
||||
|
||||
command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.")
|
||||
world << sound('intercept.ogg')
|
||||
world << sound('intercept.ogg')*/
|
||||
@@ -273,8 +273,8 @@ datum
|
||||
return steal_target
|
||||
|
||||
check_completion()
|
||||
if(!steal_target || !owner.current)
|
||||
return 0
|
||||
if(!steal_target || !owner.current) return 0
|
||||
if(!isliving(owner.current)) return 0
|
||||
var/list/all_items = owner.current.get_contents()
|
||||
switch (target_name)
|
||||
if("28 moles of plasma (full tank)","10 diamonds","50 gold bars","25 refined uranium bars")
|
||||
|
||||
@@ -147,6 +147,10 @@ datum/hSB
|
||||
continue
|
||||
if(istype(O, /obj/item/device/shield))
|
||||
continue
|
||||
if(istype(O, /obj/hivebot))
|
||||
continue
|
||||
if(istype(O, /obj/structure))
|
||||
continue
|
||||
selectable += O
|
||||
|
||||
var/hsbitem = input(usr, "Choose an object to spawn.", "Sandbox:") in selectable + "Cancel"
|
||||
|
||||
@@ -489,7 +489,8 @@
|
||||
world << "<b>[src] is the captain!</b>"
|
||||
src << "<B>You are the [rank].</B>"
|
||||
src.job = rank
|
||||
src.mind.assigned_role = rank
|
||||
if(src.mind)
|
||||
src.mind.assigned_role = rank
|
||||
|
||||
if (!joined_late && rank != "Tourist")
|
||||
var/obj/S = null
|
||||
|
||||
@@ -107,7 +107,8 @@
|
||||
check_for_null = 0 //since port.stop_charge() must be called. The checks are made in process()
|
||||
|
||||
process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha)
|
||||
if(port && mecha && mecha in port.recharge_floor)
|
||||
if((!port) || (!mecha)) return 0
|
||||
if(mecha in port.recharge_floor)
|
||||
if(!mecha.cell) return
|
||||
var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge)
|
||||
if(delta>0)
|
||||
|
||||
@@ -71,7 +71,8 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
|
||||
for(var/mob/living/carbon/mob in T)
|
||||
flick("flash", mob:flash)
|
||||
|
||||
sleep(3)
|
||||
sleep(-1)
|
||||
sleep(20)
|
||||
defer_powernet_rebuild = 0
|
||||
return 1
|
||||
|
||||
|
||||
@@ -277,8 +277,8 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
|
||||
*/
|
||||
|
||||
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
|
||||
world << sound('ionstorm.ogg')
|
||||
// command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
|
||||
// world << sound('ionstorm.ogg')
|
||||
|
||||
/*
|
||||
Stealth spawns xenos
|
||||
@@ -587,8 +587,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
|
||||
log_admin("Admin [key_name(usr)] has added a new AI law - [input]")
|
||||
message_admins("Admin [key_name_admin(usr)] has added a new AI law - [input]", 1)
|
||||
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
|
||||
world << sound('ionstorm.ogg')
|
||||
// command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
|
||||
// world << sound('ionstorm.ogg')
|
||||
|
||||
/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in world)
|
||||
set category = "Special Verbs"
|
||||
|
||||
@@ -270,19 +270,18 @@ mob/new_player
|
||||
var/icon/char_icon = getFlatIcon(character,0)//We're creating out own cache so it's not needed.
|
||||
if (character)
|
||||
character.Equip_Rank(rank, joined_late=1)
|
||||
|
||||
if(character.mind.assigned_role != "Cyborg")
|
||||
ManifestLateSpawn(character,char_icon)
|
||||
if(character.mind)
|
||||
if(character.mind.assigned_role != "Cyborg")
|
||||
ManifestLateSpawn(character,char_icon)
|
||||
if(ticker)
|
||||
character.loc = pick(latejoin)
|
||||
AnnounceArrival(character, rank)
|
||||
if(character.mind.assigned_role == "Cyborg")
|
||||
character.Robotize()
|
||||
else//Adds late joiners to minds so they can be linked to objectives.
|
||||
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc.
|
||||
|
||||
if(character.mind)
|
||||
if(character.mind.assigned_role == "Cyborg")
|
||||
character.Robotize()
|
||||
else//Adds late joiners to minds so they can be linked to objectives.
|
||||
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc.
|
||||
del(src)
|
||||
|
||||
else
|
||||
src << alert("[rank] is not available. Please try another.")
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
15961
maps/tgstation.2.0.8.dmm
@@ -116,6 +116,7 @@
|
||||
#define FILE_DIR "code/WorkInProgress"
|
||||
#define FILE_DIR "code/WorkInProgress/organs"
|
||||
#define FILE_DIR "code/WorkInProgress/recycling"
|
||||
#define FILE_DIR "code/WorkInProgress/thehive"
|
||||
#define FILE_DIR "code/WorkInProgress/virus2"
|
||||
#define FILE_DIR "code/WorkInProgress/virus2/Disease2"
|
||||
#define FILE_DIR "icons"
|
||||
@@ -340,6 +341,7 @@
|
||||
#include "code\game\gamemodes\changeling\changeling_powers.dm"
|
||||
#include "code\game\gamemodes\changeling\traitor_chan.dm"
|
||||
#include "code\game\gamemodes\cult\cult.dm"
|
||||
#include "code\game\gamemodes\cult\cult_items.dm"
|
||||
#include "code\game\gamemodes\events\clang.dm"
|
||||
#include "code\game\gamemodes\events\dust.dm"
|
||||
#include "code\game\gamemodes\events\ninja_abilities.dm"
|
||||
@@ -825,12 +827,13 @@
|
||||
#include "code\modules\research\server.dm"
|
||||
#include "code\WorkInProgress\buildmode.dm"
|
||||
#include "code\WorkInProgress\explosion_particles.dm"
|
||||
#include "code\WorkInProgress\minihivebottest.dm"
|
||||
#include "code\WorkInProgress\organs\organs.dm"
|
||||
#include "code\WorkInProgress\recycling\conveyor.dm"
|
||||
#include "code\WorkInProgress\recycling\disposal-construction.dm"
|
||||
#include "code\WorkInProgress\recycling\disposal.dm"
|
||||
#include "code\WorkInProgress\recycling\sortingmachinery.dm"
|
||||
#include "code\WorkInProgress\thehive\mhivebot.dm"
|
||||
#include "code\WorkInProgress\thehive\transport.dm"
|
||||
#include "code\WorkInProgress\virus2\Prob.dm"
|
||||
#include "code\WorkInProgress\virus2\Disease2\analyser.dm"
|
||||
#include "code\WorkInProgress\virus2\Disease2\base.dm"
|
||||
|
||||