Files
OpenSS13/Code/aaaDefines.dm
2008-05-23 17:36:21 +00:00

195 lines
3.8 KiB
Plaintext

/proc/add_zero(t, u)
while(length(t) < u)
t = text("0[]", t)
return t
/proc/add_lspace(t, u)
while(length(t) < u)
t = " [t]"
return t
/proc/add_tspace(t, u)
while(length(t) < u)
t = "[t] "
return t
/obj/bomb/New()
..() //*****RM
switch(btype)
if(0) // radio
var/obj/item/weapon/assembly/r_i_ptank/R = new /obj/item/weapon/assembly/r_i_ptank( src.loc )
var/obj/item/weapon/tank/plasmatank/p3 = new /obj/item/weapon/tank/plasmatank( R )
var/obj/item/weapon/radio/signaler/p1 = new /obj/item/weapon/radio/signaler( R )
var/obj/item/weapon/igniter/p2 = new /obj/item/weapon/igniter( R )
R.part1 = p1
R.part2 = p2
R.part3 = p3
p1.master = R
p2.master = R
p3.master = R
R.status = explosive
p1.b_stat = 0
p2.status = 1
p3.gas.temperature = btemp + T0C
//SN src = null
if(1) // prox
var/obj/item/weapon/assembly/m_i_ptank/R = new /obj/item/weapon/assembly/m_i_ptank( src.loc )
var/obj/item/weapon/tank/plasmatank/p3 = new /obj/item/weapon/tank/plasmatank( R )
var/obj/item/weapon/prox_sensor/p1 = new /obj/item/weapon/prox_sensor( R )
var/obj/item/weapon/igniter/p2 = new /obj/item/weapon/igniter( R )
R.part1 = p1
R.part2 = p2
R.part3 = p3
p1.master = R
p2.master = R
p3.master = R
R.status = explosive
p3.gas.temperature = btemp +T0C
p2.status = 1
if(src.active)
R.part1.state = 1
R.part1.icon_state = text("motion[]", 1)
R.c_state(1, src)
if(2) // time
var/obj/item/weapon/assembly/t_i_ptank/R = new /obj/item/weapon/assembly/t_i_ptank( src.loc )
var/obj/item/weapon/tank/plasmatank/p3 = new /obj/item/weapon/tank/plasmatank( R )
var/obj/item/weapon/timer/p1 = new /obj/item/weapon/timer( R )
var/obj/item/weapon/igniter/p2 = new /obj/item/weapon/igniter( R )
R.part1 = p1
R.part2 = p2
R.part3 = p3
p1.master = R
p2.master = R
p3.master = R
R.status = explosive
p3.gas.temperature = btemp +T0C
p2.status = 1
del(src)
return
/obj/proc/throwing(t_dir, rs)
if (src.throwspeed <= 1)
src.throwing = 0
src.throwspeed--
if (rs == 0)
rs = 1
if (src.throwing)
if (rs == 1)
step(src, t_dir)
sleep(1)
spawn( 0 )
throwing(t_dir, rs)
return
else
if (rs > 1)
var/t = null
while(t < rs)
step(src, t_dir)
t++
sleep(10)
spawn( 0 )
src.throwing(t_dir, rs)
return
else
step(src, t_dir)
sleep(10 / rs)
spawn( 0 )
throwing(t_dir, rs)
return
else
//*****RM
//src.density = 0
if(istype(src, /obj/item))
src.density = 0
//*****
return
//*****RM
/obj/Bump(atom/O)
if (src.throwing)
//world<<"[src] bumped into [O] and stopped"
src.throwing = 0
..()
//*****
/atom/proc/burn(fi_amount)
return
/atom/movable/Move()
var/atom/A = src.loc
. = ..()
src.move_speed = world.time - src.l_move_time
src.l_move_time = world.time
src.m_flag = 1
if ((A != src.loc && A && A.z == src.z))
src.last_move = get_dir(A, src.loc)
return
/proc/cleanstring(var/t)
var/index = findtext(t, "\n")
while(index)
t = copytext(t, 1, index) + "#" + copytext(t, index+1)
index = findtext(t, "\n")
index = findtext(t, "\t")
while(index)
t = copytext(t, 1, index) + "#" + copytext(t, index+1)
index = findtext(t, "\t")
return t
/datum/config/New()
for(var/M in modes)
pickprob[M] = 1
/datum/config/proc/pickmode()
var/total = 0
var/list/accum = list()
for(var/M in modes)
total += pickprob[M]
accum[M] = total
//world << "[M] [pickprob[M]] [accum[M]]"
var/r = total-(rand()*total)
//world << "Chosen value is [r]"
for(var/M in modes)
if(pickprob[M]>0 && accum[M]>=r)
//world << "Returning mode [M]"
return M
//world << "Failed to pick gamemode in config/pickmode()"
return null
/proc/upperfirst(var/t as text)
return uppertext(copytext(t,1,2))+copytext(t,2)