mirror of
https://github.com/cybergirlvannie/OpenSS13.git
synced 2026-02-10 03:17:36 +00:00
171 lines
3.3 KiB
Plaintext
171 lines
3.3 KiB
Plaintext
|
|
|
|
/obj/shut_controller/proc/rotate(direct)
|
|
|
|
var/SE_X = 1
|
|
var/SE_Y = 1
|
|
var/SW_X = 1
|
|
var/SW_Y = 1
|
|
var/NE_X = 1
|
|
var/NE_Y = 1
|
|
var/NW_X = 1
|
|
var/NW_Y = 1
|
|
for(var/obj/move/M in src.parts)
|
|
if (M.x < SW_X)
|
|
SW_X = M.x
|
|
if (M.x > SE_X)
|
|
SE_X = M.x
|
|
if (M.y < SW_Y)
|
|
SW_Y = M.y
|
|
if (M.y > NW_Y)
|
|
NW_Y = M.y
|
|
if (M.y > NE_Y)
|
|
NE_Y = M.y
|
|
if (M.y < SE_Y)
|
|
SE_Y = M.y
|
|
if (M.x > NE_X)
|
|
NE_X = M.x
|
|
if (M.x < NW_X)
|
|
NW_X = M.y
|
|
//Foreach goto(75)
|
|
var/length = abs(NE_X - NW_X)
|
|
var/width = abs(NE_Y - SE_Y)
|
|
var/obj/random = pick(src.parts)
|
|
var/s_direct = null
|
|
switch(s_direct)
|
|
if(1.0)
|
|
switch(direct)
|
|
if(90.0)
|
|
var/tx = SE_X
|
|
var/ty = SE_Y
|
|
var/t_z = random.z
|
|
for(var/obj/move/M in src.parts)
|
|
M.ty = -M.x - tx
|
|
M.tx = -M.y - ty
|
|
var/T = locate(M.x, M.y, 11)
|
|
M.relocate(T)
|
|
M.ty = -M.ty
|
|
M.tx += length
|
|
//Foreach goto(374)
|
|
for(var/obj/move/M in src.parts)
|
|
M.tx += tx
|
|
M.ty += ty
|
|
var/T = locate(M.tx, M.ty, t_z)
|
|
M.relocate(T, 90)
|
|
//Foreach goto(468)
|
|
if(-90.0)
|
|
var/tx = SE_X
|
|
var/ty = SE_Y
|
|
var/t_z = random.z
|
|
for(var/obj/move/M in src.parts)
|
|
M.ty = M.x - tx
|
|
M.tx = M.y - ty
|
|
var/T = locate(M.x, M.y, 11)
|
|
M.relocate(T)
|
|
M.ty = -M.ty
|
|
M.ty += width
|
|
//Foreach goto(571)
|
|
for(var/obj/move/M in src.parts)
|
|
M.tx += tx
|
|
M.ty += ty
|
|
var/T = locate(M.tx, M.ty, t_z)
|
|
M.relocate(T, -90.0)
|
|
//Foreach goto(663)
|
|
else
|
|
else
|
|
return
|
|
|
|
/obj/shuttle/door/attackby(obj/item/I as obj, mob/user as mob)
|
|
if (src.operating)
|
|
return
|
|
if (src.density)
|
|
return open()
|
|
else
|
|
return close()
|
|
|
|
/obj/shuttle/door/attack_ai(mob/user as mob)
|
|
return src.attack_hand(user)
|
|
|
|
/obj/shuttle/door/attack_paw(mob/user as mob)
|
|
return src.attack_hand(user)
|
|
|
|
/obj/shuttle/door/attack_hand(mob/user as mob)
|
|
return attackby(user, user)
|
|
|
|
/obj/shuttle/door/verb/open()
|
|
set src in oview(1)
|
|
var/result = src.canReach(usr, null, 1)
|
|
if (result==0)
|
|
usr.client_mob() << "You can't reach [src]."
|
|
return
|
|
|
|
src.add_fingerprint(usr)
|
|
if (src.operating)
|
|
return
|
|
src.operating = 1
|
|
flick("doorc0", src)
|
|
src.icon_state = "door0"
|
|
sleep(15)
|
|
src.density = 0
|
|
src.opacity = 0
|
|
src.verbs -= /obj/shuttle/door/verb/open
|
|
src.verbs += /obj/shuttle/door/proc/close
|
|
src.operating = 0
|
|
|
|
src.loc.buildlinks()
|
|
|
|
return
|
|
|
|
/obj/shuttle/door/proc/close()
|
|
set src in oview(1)
|
|
var/result = src.canReach(usr, null, 1)
|
|
if (result==0)
|
|
usr.client_mob() << "You can't reach [src]."
|
|
return
|
|
|
|
src.add_fingerprint(usr)
|
|
if (src.operating)
|
|
return
|
|
src.operating = 1
|
|
flick("doorc1", src)
|
|
src.icon_state = "door1"
|
|
src.density = 1
|
|
if (src.visible)
|
|
src.opacity = 1
|
|
sleep(15)
|
|
src.verbs += /obj/shuttle/door/verb/open
|
|
src.verbs -= /obj/shuttle/door/proc/close
|
|
src.operating = 0
|
|
|
|
src.loc.buildlinks()
|
|
return
|
|
|
|
/turf/station/shuttle/ex_act(severity)
|
|
|
|
switch(severity)
|
|
if(1.0)
|
|
//SN src = null
|
|
var/turf/space/S = src.ReplaceWithSpace()
|
|
S.buildlinks()
|
|
|
|
del(src)
|
|
return
|
|
if(2.0)
|
|
if (prob(50))
|
|
//SN src = null
|
|
var/turf/space/S = src.ReplaceWithSpace()
|
|
S.buildlinks()
|
|
|
|
del(src)
|
|
return
|
|
else
|
|
return
|
|
|
|
/turf/station/shuttle/blob_act()
|
|
if(prob(20))
|
|
|
|
var/turf/space/S = src.ReplaceWithSpace()
|
|
S.buildlinks()
|
|
|
|
del(src)
|