'Please murder me slowly' pieces of code
- Aranclanos
- Joined: Tue Apr 15, 2014 4:55 pm
- Byond Username: Aranclanos
'Please murder me slowly' pieces of code
Each time that any object moves to a floor turf, is checks if it's a human. If it's a human, it checks if they're wearing clown shoes, just to make the clown step sound.
Each time that any object moves.
-
- Github User
- Joined: Fri Apr 18, 2014 1:50 pm
- Byond Username: Xxnoob
- Github Username: xxalpha
Re: 'Please murder me slowly' pieces of code
I like how the only comment on that mess is not helpful at all.
- MisterPerson
- Board Moderator
- Joined: Tue Apr 15, 2014 4:26 pm
- Byond Username: MisterPerson
Re: 'Please murder me slowly' pieces of code
Code: Select all
proc/time_stamp(var/format = "hh:mm:ss")
return time2text(world.timeofday, format)
proc/gameTimestamp(var/format = "hh:mm:ss") // Get the game time in text
return time2text(world.time - timezoneOffset + 432000, format)
/* Preserving this so future generations can see how fucking retarded some people are
proc/time_stamp()
var/hh = text2num(time2text(world.timeofday, "hh")) // Set the hour
var/mm = text2num(time2text(world.timeofday, "mm")) // Set the minute
var/ss = text2num(time2text(world.timeofday, "ss")) // Set the second
var/ph
var/pm
var/ps
if(hh < 10) ph = "0"
if(mm < 10) pm = "0"
if(ss < 10) ps = "0"
return"[ph][hh]:[pm][mm]:[ps][ss]"
*/
Feedback is dumb and it doesn't matter
- Stickymayhem
- Joined: Mon Apr 28, 2014 6:13 pm
- Byond Username: Stickymayhem
Re: 'Please murder me slowly' pieces of code
Does that code mean clown shoes don't squeak on unsimulated turf?
Boris wrote:Sticky is a jackass who has worms where his brain should be, but he also gets exactly what SS13 should be
- Jordie0608
- Site Admin
- Joined: Tue Apr 15, 2014 1:33 pm
- Byond Username: Jordie0608
- Github Username: Jordie0608
- Location: Spiderland, Australia
Re: 'Please murder me slowly' pieces of code
The old SSU update_icon proc was great.
Code: Select all
/obj/machinery/suit_storage_unit/update_icon()
var/hashelmet = 0
var/hassuit = 0
var/hashuman = 0
if(HELMET)
hashelmet = 1
if(SUIT)
hassuit = 1
if(OCCUPANT)
hashuman = 1
icon_state = text("suitstorage[][][][][][][][][]",hashelmet,hassuit,hashuman,src.isopen,src.islocked,src.isUV,src.ispowered,src.isbroken,src.issuperUV)
Send me a PM if you have any issues, concerns or praise of fishfood to express about the forums.
-
- Joined: Sat Apr 19, 2014 11:23 am
- Byond Username: Miauw62
Re: 'Please murder me slowly' pieces of code
- Anyway, saycode used to loop through all hearers, see if they could understand the speaker through a bunch of istypes, then loop through each list seperately to tell them the message.
This was even worse for radio code, where there were seperate lists for people who heard the message garbled, heard it when the speaker was wearing a voice-changer, heard it normally and people who didnt understand it. - Also, people using show_message(message, 2) on dead players (2 means "dont send the message if the hearer is deaf")
- probably the most hilarious code i've ever seen
Code: Select all
if(!radio_controller) sleep(30) // Waiting for the radio_controller to be created. if(!radio_controller) src.name = "broken radio headset" return
- There's also silent being checked by every mob seperately for some reason, and say() in general being a monolith so all the overrides were really really shitty.
Yeah, this could have been checked once at the carbon() level, but instead of doing the sane thing it checks everywhere.
Code: Select all
/mob/living/carbon/slime/say(var/message) if (silent) return else return ..()
- Anything involving istype(src)
- Do I need to explain?
Code: Select all
if (length(message) >= 2) if ((copytext(message, 1, 3) == ":b") || (copytext(message, 1, 3) == ":B") || \ (copytext(message, 1, 3) == "#b") || (copytext(message, 1, 3) == "#B") || \ (copytext(message, 1, 3) == ".b") || (copytext(message, 1, 3) == ".B")) if(istype(src, /mob/living/silicon/pai)) return ..(message, "R") message = copytext(message, 3) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) robot_talk(message) else if ((copytext(message, 1, 3) == ":h") || (copytext(message, 1, 3) == ":H") || \ (copytext(message, 1, 3) == "#h") || (copytext(message, 1, 3) == "#H") || \ (copytext(message, 1, 3) == ".h") || (copytext(message, 1, 3) == ".H")) if(isAI(src)&&client)//For patching directly into AI holopads. var/mob/living/silicon/ai/U = src message = copytext(message, 3) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) U.holopad_talk(message) else//Will not allow anyone by an active AI to use this function. src << "This function is not available to you." return
E:
Almost forgot the best of them all:
This proc always cracks me up.
<wb> For one, the spaghetti is killing me. It's everywhere in food code, and makes it harder to clean those up.
<Tobba> I stared into BYOND and it farted
- Cheridan
- Joined: Tue Apr 15, 2014 6:04 am
- Byond Username: Cheridan
Re: 'Please murder me slowly' pieces of code
>no indication what "yes" means
>that parent call after the return
beat me to death with hitler's brain
-
- Joined: Sat Apr 19, 2014 11:23 am
- Byond Username: Miauw62
Re: 'Please murder me slowly' pieces of code
Code: Select all
/datum/game_mode/proc/random_radio_frequency()
return 1337 // WHY??? -- Doohl
<wb> For one, the spaghetti is killing me. It's everywhere in food code, and makes it harder to clean those up.
<Tobba> I stared into BYOND and it farted
- MisterPerson
- Board Moderator
- Joined: Tue Apr 15, 2014 4:26 pm
- Byond Username: MisterPerson
Re: 'Please murder me slowly' pieces of code
https://www.daniweb.com/software-develo ... my-program
Feedback is dumb and it doesn't matter
- Remie Richards
- Joined: Thu Apr 17, 2014 7:11 pm
- Byond Username: CrimsonVision
- Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
- Contact:
Re: 'Please murder me slowly' pieces of code
MisterPerson wrote:Not /tg/station related, but I just have to share for anyone who hasn't seen it yet.
https://www.daniweb.com/software-develo ... my-program
float x;
float xx;
float xxx;
float xxxx;
float xxxxx;
etc.
Wow.
-
- Joined: Fri Apr 18, 2014 6:40 pm
- Byond Username: Lo6a4evskiy
Re: 'Please murder me slowly' pieces of code
It's not actually called anywhere in the code, probably something that was never finished.Miauw wrote:Just found this while browsing through nuke code.Code: Select all
/datum/game_mode/proc/random_radio_frequency() return 1337 // WHY??? -- Doohl
- paprika
- Rarely plays
- Joined: Fri Apr 18, 2014 10:20 pm
- Byond Username: Paprka
- Location: in down bad
Re: 'Please murder me slowly' pieces of code
Oldman Robustin wrote:It's an established meme that coders don't play this game.
- MisterPerson
- Board Moderator
- Joined: Tue Apr 15, 2014 4:26 pm
- Byond Username: MisterPerson
Re: 'Please murder me slowly' pieces of code
Code: Select all
/obj/screen/zone_sel/Click(location, control,params)
var/list/PL = params2list(params)
var/icon_x = text2num(PL["icon-x"])
var/icon_y = text2num(PL["icon-y"])
if(icon_y < 2)
return
if(icon_y < 4)
if(icon_x > 9 && icon_x < 16)
selecting = "r_leg"
else if(icon_x > 15 && icon_x < 23)
selecting = "l_leg"
else
return
else if(icon_y < 11)
if(icon_x > 11 && icon_x < 21)
if(icon_x < 16)
selecting = "r_leg"
else
selecting = "l_leg"
else
return
else if(icon_y < 12)
if(icon_x > 7 && icon_x < 12)
selecting = "r_arm"
else if(icon_x > 11 && icon_x < 14)
selecting = "r_leg"
else if(icon_x < 19)
selecting = "groin"
else if(icon_x > 18 && icon_x < 21)
selecting = "l_leg"
else if(icon_x > 20 && icon_x < 25)
selecting = "l_arm"
else
return
else if(icon_y < 13)
if(icon_x > 7 && icon_x < 25)
if(icon_x < 13)
selecting = "r_leg"
else if(icon_x < 20)
selecting = "groin"
else if(icon_x < 21)
selecting = "l_leg"
else
return
else if(icon_y < 14)
if(icon_x > 11 && icon_x < 21)
selecting = "groin"
else if(icon_x > 7 && icon_x < 12)
selecting = "r_arm"
else if(icon_x > 20 && icon_x < 25)
selecting = "l_arm"
else
return
else if(icon_y < 16)
if(icon_x > 7 && icon_x < 25)
if(icon_x < 20)
selecting = "chest"
else
return
else if(icon_y < 23)
if(icon_x > 7 && icon_x < 25)
if(icon_x < 12)
selecting = "r_arm"
else if(icon_x < 21)
selecting = "chest"
else
selecting = "l_arm"
else
return
else if(icon_y < 24)
if(icon_x > 11 && icon_x < 21)
selecting = "chest"
else
return
else if(icon_y < 25)
if(icon_x > 11 && icon_x < 21)
if(icon_x < 16)
selecting = "head"
else if(icon_x < 17)
selecting = "mouth"
else
selecting = "head"
else
return
else if(icon_y < 26)
if(icon_x > 11 && icon_x < 21)
if(icon_x < 15)
selecting = "head"
else if(icon_x < 18)
selecting = "mouth"
else
selecting = "head"
else
return
else if(icon_y < 27)
if(icon_x > 11 && icon_x < 21)
if(icon_x < 15)
selecting = "head"
else if(icon_x < 16)
selecting = "eyes"
else if(icon_x < 17)
selecting = "mouth"
else if(icon_x < 18)
selecting = "eyes"
else
selecting = "head"
else
return
else if(icon_y < 28)
if(icon_x > 11 && icon_x < 21)
if(icon_x < 14)
selecting = "head"
else if(icon_x < 19)
selecting = "eyes"
else
selecting = "head"
else
return
else if(icon_y < 29)
if(icon_x > 11 && icon_x < 21)
if(icon_x < 15)
selecting = "head"
else if(icon_x < 16)
selecting = "eyes"
else if(icon_x < 17)
selecting = "head"
else if(icon_x < 18)
selecting = "eyes"
else
selecting = "head"
else
return
else if(icon_y < 31)
if(icon_x > 11 && icon_x < 21)
selecting = "head"
update_icon()
Code: Select all
/obj/screen/zone_sel/Click(location, control,params)
var/list/PL = params2list(params)
var/icon_x = text2num(PL["icon-x"])
var/icon_y = text2num(PL["icon-y"])
var/old_selecting = selecting //We're only going to update_icon() if there's been a change
switch(icon_y)
if(1 to 9) //Legs
switch(icon_x)
if(10 to 15)
selecting = "r_leg"
if(17 to 22)
selecting = "l_leg"
else
return 1
if(10 to 13) //Hands and groin
switch(icon_x)
if(8 to 11)
selecting = "r_arm"
if(12 to 20)
selecting = "groin"
if(21 to 24)
selecting = "l_arm"
else
return 1
if(14 to 22) //Chest and arms to shoulders
switch(icon_x)
if(8 to 11)
selecting = "r_arm"
if(12 to 20)
selecting = "chest"
if(21 to 24)
selecting = "l_arm"
else
return 1
if(23 to 30) //Head, but we need to check for eye or mouth
if(icon_x in 12 to 20)
selecting = "head"
switch(icon_y)
if(23 to 24)
if(icon_x in 15 to 17)
selecting = "mouth"
if(26) //Eyeline, eyes are on 15 and 17
if(icon_x in 14 to 18)
selecting = "eyes"
if(25 to 27)
if(icon_x in 15 to 17)
selecting = "eyes"
if(old_selecting != selecting)
update_icon()
return 1
Feedback is dumb and it doesn't matter
- Remie Richards
- Joined: Thu Apr 17, 2014 7:11 pm
- Byond Username: CrimsonVision
- Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
- Contact:
Re: 'Please murder me slowly' pieces of code
- MisterPerson
- Board Moderator
- Joined: Tue Apr 15, 2014 4:26 pm
- Byond Username: MisterPerson
Re: 'Please murder me slowly' pieces of code
700 lines of madness. This shit was ran every time anyone clicked on (almost) anything.
Code: Select all
/atom/Click(location,control,params)
//world << "atom.Click() on [src] by [usr] : src.type is [src.type]"
if(usr.client.buildmode)
build_click(usr, usr.client.buildmode, location, control, params, src)
return
// if(using_new_click_proc) //TODO ERRORAGE (see message below)
// return DblClickNew()
return DblClick(location, control, params)
var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblClickNew() proc is being tested)
/atom/proc/DblClickNew()
if(!usr) return
// TODO DOOHL: Intergrate params to new proc. Saved for another time because var/valid_place is a fucking brainfuck
//Spamclick server-overloading prevention delay... THING
if (world.time <= usr:lastDblClick+1)
return
else
usr:lastDblClick = world.time
//paralysis and critical condition
if(usr.stat == 1) //Death is handled in attack_ghost()
return
if(!istype(usr, /mob/living/silicon/ai))
if (usr.paralysis || usr.stunned || usr.weakened)
return
//handle the hud separately
if(istype(src,/obj/screen))
if( usr.restrained() )
if(ishuman(usr))
src.attack_hand(usr)
else if(isAI(usr))
src.attack_ai(usr)
else if(isrobot(usr))
src.attack_ai(usr)
else if(isobserver(usr))
src.attack_ghost(usr)
else if(ismonkey(usr))
src.attack_paw(usr)
else if(isalienadult(usr))
src.attack_alien(usr)
else if(isslime(usr))
src.attack_slime(usr)
else if(isanimal(usr))
src.attack_animal(usr)
else
usr << "This mob type does not support clicks to the HUD. Contact a coder."
else
if(ishuman(usr))
src.hand_h(usr, usr.hand)
else if(isAI(usr))
src.hand_a(usr, usr.hand)
else if(isrobot(usr))
src.hand_a(usr, usr.hand)
else if(isobserver(usr))
return
else if(ismonkey(usr))
src.hand_p(usr, usr.hand)
else if(isalienadult(usr))
src.hand_al(usr, usr.hand)
else if(isslime(usr))
return
else if(isanimal(usr))
return
else
usr << "This mob type does not support restrained clicks to the HUD. Contact a coder."
return
//Gets equipped item or used module of robots
var/obj/item/W = usr.get_active_hand()
//Attack self
if (W == src && usr.stat == 0)
// spawn (0) //causes runtimes under heavy lag
W.attack_self(usr)
return
//Attackby, attack_hand, afterattack, etc. can only be done once every 1 second, unless an object has the NODELAY or USEDELAY flags set
//This segment of code determins this.
if(W)
if( !( (src.loc && src.loc == usr) || (src.loc.loc && src.loc.loc == usr) ) )
//The check above checks that you are not targeting an item which you are holding.
//If you are, (example clicking a backpack), the delays are ignored.
if(W.flags & USEDELAY)
//Objects that use the USEDELAY flag can only attack once every 2 seconds
if (usr.next_move < world.time)
usr.prev_move = usr.next_move
usr.next_move = world.time + 20
else
return //A click has recently been handled already, you need to wait until the anti-spam delay between clicks passes
else if(!(W.flags & NODELAY))
//Objects with NODELAY don't have a delay between uses, while most objects have the standard 1 second delay.
if (usr.next_move < world.time)
usr.prev_move = usr.next_move
usr.next_move = world.time + 10
else
return //A click has recently been handled already, you need to wait until the anti-spam delay between clicks passes
else
//Empty hand
if (usr.next_move < world.time)
usr.prev_move = usr.next_move
usr.next_move = world.time + 10
else
return //A click has recently been handled already, you need to wait until the anti-spam delay between clicks passes
//Is the object in a valid place?
var/valid_place = 0
if ( isturf(src) || ( src.loc && isturf(src.loc) ) || ( src.loc.loc && isturf(src.loc.loc) ) )
//Object is either a turf of placed on a turf, thus valid.
//The third one is that it is in a container, which is on a turf, like a box,
//which you mouse-drag opened. Also a valid location.
valid_place = 1
if ( ( src.loc && (src.loc == usr) ) || ( src.loc.loc && (src.loc.loc == usr) ) )
//User has the object on them (in their inventory) and it is thus valid
valid_place = 1
//Afterattack gets performed every time you click, no matter if it's in range or not. It's used when
//clicking targets for guns and such. If you are clicking on a target that's not in range
//with an item in your hands only afterattack() needs to be performed.
//If the range is valid, afterattack() will be handled in the separate mob-type
//sections below, however only after attackby(). Attack_hand and simmilar procs are handled
//in the mob-type sections below, as some require you to be in range to work (human, monkey..) while others don't (ai, cyborg)
//Also note that afterattack does not differentiate between the holder/attacker's mob-type.
if( W && !valid_place)
W.afterattack(src, usr, (valid_place ? 1 : 0))
return
if(ishuman(usr))
var/mob/living/carbon/human/human = usr
//-human stuff-
if(human.stat)
return
if(human.in_throw_mode)
return human.throw_item(src)
var/in_range = in_range(src, human) || src.loc == human
if (in_range)
if (!( human.restrained() || human.lying ))
if (W)
attackby(W,human)
if (W)
W.afterattack(src, human)
else
attack_hand(human)
else
hand_h(human, human.hand)
else
if ( (W) && !human.restrained() )
W.afterattack(src, human)
else if(isAI(usr))
var/mob/living/silicon/ai/ai = usr
//-ai stuff-
if(ai.stat)
return
if (ai.control_disabled)
return
if( !ai.restrained() )
attack_ai(ai)
else
hand_a(ai, ai.hand)
else if(isrobot(usr))
var/mob/living/silicon/robot/robot = usr
//-cyborg stuff-
if(robot.stat)
return
if (robot.lockcharge)
return
if(W)
var/in_range = in_range(src, robot) || src.loc == robot
if(in_range)
attackby(W,robot)
if (W)
W.afterattack(src, robot)
else
if( !robot.restrained() )
attack_robot(robot)
else
hand_r(robot, robot.hand)
else if(isobserver(usr))
var/mob/dead/observer/ghost = usr
//-ghost stuff-
if(ghost)
if(W)
if(usr.client && usr.client.holder)
src.attackby(W, ghost) //This is so admins can interact with things ingame.
else
src.attack_ghost(ghost) //Something's gone wrong, non-admin ghosts shouldn't be able to hold things.
else
if(usr.client && usr.client.holder)
src.attack_admin(ghost) //This is so admins can interact with things ingame.
else
src.attack_ghost(ghost) //Standard click as ghost
else if(ismonkey(usr))
var/mob/living/carbon/monkey/monkey = usr
//-monkey stuff-
if(monkey.stat)
return
if(monkey.in_throw_mode)
return monkey.throw_item(src)
var/in_range = in_range(src, monkey) || src.loc == monkey
if (in_range)
if ( !monkey.restrained() )
if (W)
attackby(W,monkey)
if (W)
W.afterattack(src, monkey)
else
attack_paw(monkey)
else
hand_p(monkey, monkey.hand)
else
if ( (W) && !monkey.restrained() )
W.afterattack(src, monkey)
else if(isalienadult(usr))
var/mob/living/carbon/alien/humanoid/alien = usr
//-alien stuff-
if(alien.stat)
return
var/in_range = in_range(src, alien) || src.loc == alien
if (in_range)
if ( !alien.restrained() )
if (W)
attackby(W,alien)
if (W)
W.afterattack(src, alien)
else
attack_alien(alien)
else
hand_al(alien, alien.hand)
else
if ( (W) && !alien.restrained() )
W.afterattack(src, alien)
else if(islarva(usr))
var/mob/living/carbon/alien/larva/alien = usr
if(alien.stat)
return
var/in_range = in_range(src, alien) || src.loc == alien
if (in_range)
if ( !alien.restrained() )
attack_larva(alien)
else if(isslime(usr))
var/mob/living/carbon/slime/slime = usr
//-slime stuff-
if(slime.stat)
return
var/in_range = in_range(src, slime) || src.loc == slime
if (in_range)
if ( !slime.restrained() )
if (W)
attackby(W,slime)
if (W)
W.afterattack(src, slime)
else
attack_slime(slime)
else
hand_m(slime, slime.hand)
else
if ( (W) && !slime.restrained() )
W.afterattack(src, slime)
else if(isanimal(usr))
var/mob/living/simple_animal/animal = usr
//-simple animal stuff-
if(animal.stat)
return
var/in_range = in_range(src, animal) || src.loc == animal
if (in_range)
if ( !animal.restrained() )
attack_animal(animal)
/atom/DblClick(location, control, params) //TODO: DEFERRED: REWRITE
if(!usr) return
// ------- TIME SINCE LAST CLICK -------
if (world.time <= usr:lastDblClick+1)
// world << "BLOCKED atom.DblClick() on [src] by [usr] : src.type is [src.type]"
return
else
// world << "atom.DblClick() on [src] by [usr] : src.type is [src.type]"
usr:lastDblClick = world.time
//Putting it here for now. It diverts stuff to the mech clicking procs. Putting it here stops us drilling items in our inventory Carn
if(istype(usr.loc,/obj/mecha))
if(usr.client && (src in usr.client.screen))
return
var/obj/mecha/Mech = usr.loc
Mech.click_action(src,usr)
return
// ------- DIR CHANGING WHEN CLICKING ------
if( iscarbon(usr) && !usr.buckled )
if( src.x && src.y && usr.x && usr.y )
var/dx = src.x - usr.x
var/dy = src.y - usr.y
if(dy || dx)
if(abs(dx) < abs(dy))
if(dy > 0) usr.dir = NORTH
else usr.dir = SOUTH
else
if(dx > 0) usr.dir = EAST
else usr.dir = WEST
else
if(pixel_y > 16) usr.dir = NORTH
else if(pixel_y < -16) usr.dir = SOUTH
else if(pixel_x > 16) usr.dir = EAST
else if(pixel_x < -16) usr.dir = WEST
// ------- AI -------
else if (istype(usr, /mob/living/silicon/ai))
var/mob/living/silicon/ai/ai = usr
if (ai.control_disabled)
return
// ------- CYBORG -------
else if (istype(usr, /mob/living/silicon/robot))
var/mob/living/silicon/robot/bot = usr
if (bot.lockcharge) return
..()
// ------- SHIFT-CLICK -------
if(params)
var/parameters = params2list(params)
if(parameters["shift"]){
if(!isAI(usr))
ShiftClick(usr)
else
AIShiftClick(usr)
return
}
// ------- ALT-CLICK -------
if(parameters["alt"]){
if(!isAI(usr))
AltClick(usr)
else
AIAltClick(usr)
return
}
// ------- CTRL-CLICK -------
if(parameters["ctrl"]){
if(!isAI(usr))
CtrlClick(usr)
else
AICtrlClick(usr)
return
}
// ------- MIDDLE-CLICK -------
if(parameters["middle"]){
if(!isAI(usr))
MiddleClick(usr)
return
}
// ------- THROW -------
if(usr.in_throw_mode)
return usr:throw_item(src)
// ------- ITEM IN HAND DEFINED -------
var/obj/item/W = usr.get_active_hand()
/* Now handled by get_active_hand()
// ------- ROBOT -------
if(istype(usr, /mob/living/silicon/robot))
if(!isnull(usr:module_active))
W = usr:module_active
else
W = null
*/
// ------- ATTACK SELF -------
if (W == src && usr.stat == 0)
W.attack_self(usr)
if(usr.hand)
usr.update_inv_l_hand(0) //update in-hand overlays
else
usr.update_inv_r_hand(0)
return
// ------- PARALYSIS, STUN, WEAKENED, DEAD, (And not AI) -------
if (((usr.paralysis || usr.stunned || usr.weakened) && !istype(usr, /mob/living/silicon/ai)) || usr.stat != 0)
return
// ------- CLICKING STUFF IN CONTAINERS -------
if ((!( src in usr.contents ) && (((!( isturf(src) ) && (!( isturf(src.loc) ) && (src.loc && !( isturf(src.loc.loc) )))) || !( isturf(usr.loc) )) && (src.loc != usr.loc && (!( istype(src, /obj/screen) ) && !( usr.contents.Find(src.loc) ))))))
if (istype(usr, /mob/living/silicon/ai))
var/mob/living/silicon/ai/ai = usr
if (ai.control_disabled || ai.malfhacking)
return
else
return
// ------- 1 TILE AWAY -------
var/t5
// ------- AI CAN CLICK ANYTHING -------
if(istype(usr, /mob/living/silicon/ai))
t5 = 1
// ------- CYBORG CAN CLICK ANYTHING WHEN NOT HOLDING STUFF -------
else if(istype(usr, /mob/living/silicon/robot) && !W)
t5 = 1
else
t5 = in_range(src, usr) || src.loc == usr
// world << "according to dblclick(), t5 is [t5]"
// ------- ACTUALLY DETERMINING STUFF -------
if (((t5 || (W && (W.flags & USEDELAY))) && !( istype(src, /obj/screen) )))
// ------- ( CAN USE ITEM OR HAS 1 SECOND USE DELAY ) AND NOT CLICKING ON SCREEN -------
if (usr.next_move < world.time)
usr.prev_move = usr.next_move
usr.next_move = world.time + 10
else
// ------- ALREADY USED ONE ITEM WITH USE DELAY IN THE PREVIOUS SECOND -------
return
// ------- DELAY CHECK PASSED -------
if ((src.loc && (get_dist(src, usr) < 2 || src.loc == usr.loc)))
// ------- CLICKED OBJECT EXISTS IN GAME WORLD, DISTANCE FROM PERSON TO OBJECT IS 1 SQUARE OR THEY'RE ON THE SAME SQUARE -------
var/direct = get_dir(usr, src)
var/obj/item/weapon/dummy/D = new /obj/item/weapon/dummy( usr.loc )
var/ok = 0
if ( (direct - 1) & direct)
// ------- CLICKED OBJECT IS LOCATED IN A DIAGONAL POSITION FROM THE PERSON -------
var/turf/Step_1
var/turf/Step_2
switch(direct)
if(5.0)
Step_1 = get_step(usr, NORTH)
Step_2 = get_step(usr, EAST)
if(6.0)
Step_1 = get_step(usr, SOUTH)
Step_2 = get_step(usr, EAST)
if(9.0)
Step_1 = get_step(usr, NORTH)
Step_2 = get_step(usr, WEST)
if(10.0)
Step_1 = get_step(usr, SOUTH)
Step_2 = get_step(usr, WEST)
else
if(Step_1 && Step_2)
// ------- BOTH CARDINAL DIRECTIONS OF THE DIAGONAL EXIST IN THE GAME WORLD -------
var/check_1 = 0
var/check_2 = 0
if(step_to(D, Step_1))
check_1 = 1
for(var/obj/border_obstacle in Step_1)
if(border_obstacle.flags & ON_BORDER)
if(!border_obstacle.CheckExit(D, src))
check_1 = 0
// ------- YOU TRIED TO CLICK ON AN ITEM THROUGH A WINDOW (OR SIMILAR THING THAT LIMITS ON BORDERS) ON ONE OF THE DIRECITON TILES -------
for(var/obj/border_obstacle in get_turf(src))
if((border_obstacle.flags & ON_BORDER) && (src != border_obstacle))
if(!border_obstacle.CanPass(D, D.loc, 1, 0))
// ------- YOU TRIED TO CLICK ON AN ITEM THROUGH A WINDOW (OR SIMILAR THING THAT LIMITS ON BORDERS) ON THE TILE YOU'RE ON -------
check_1 = 0
D.loc = usr.loc
if(step_to(D, Step_2))
check_2 = 1
for(var/obj/border_obstacle in Step_2)
if(border_obstacle.flags & ON_BORDER)
if(!border_obstacle.CheckExit(D, src))
check_2 = 0
for(var/obj/border_obstacle in get_turf(src))
if((border_obstacle.flags & ON_BORDER) && (src != border_obstacle))
if(!border_obstacle.CanPass(D, D.loc, 1, 0))
check_2 = 0
if(check_1 || check_2)
ok = 1
// ------- YOU CAN REACH THE ITEM THROUGH AT LEAST ONE OF THE TWO DIRECTIONS. GOOD. -------
/*
More info:
If you're trying to click an item in the north-east of your mob, the above section of code will first check if tehre's a tile to the north or you and to the east of you
These two tiles are Step_1 and Step_2. After this, a new dummy object is created on your location. It then tries to move to Step_1, If it succeeds, objects on the turf you're on and
the turf that Step_1 is are checked for items which have the ON_BORDER flag set. These are itmes which limit you on only one tile border. Windows, for the most part.
CheckExit() and CanPass() are use to determine this. The dummy object is then moved back to your location and it tries to move to Step_2. Same checks are performed here.
If at least one of the two checks succeeds, it means you can reach the item and ok is set to 1.
*/
else
// ------- OBJECT IS ON A CARDINAL TILE (NORTH, SOUTH, EAST OR WEST OR THE TILE YOU'RE ON) -------
if(loc == usr.loc)
ok = 1
// ------- OBJECT IS ON THE SAME TILE AS YOU -------
else
ok = 1
//Now, check objects to block exit that are on the border
for(var/obj/border_obstacle in usr.loc)
if(border_obstacle.flags & ON_BORDER)
if(!border_obstacle.CheckExit(D, src))
ok = 0
//Next, check objects to block entry that are on the border
for(var/obj/border_obstacle in get_turf(src))
if((border_obstacle.flags & ON_BORDER) && (src != border_obstacle))
if(!border_obstacle.CanPass(D, D.loc, 1, 0))
ok = 0
/*
See the previous More info, for... more info...
*/
//del(D)
// Garbage Collect Dummy
D.loc = null
D = null
// ------- DUMMY OBJECT'S SERVED IT'S PURPOSE, IT'S REWARDED WITH A SWIFT DELETE -------
if (!( ok ))
// ------- TESTS ABOVE DETERMINED YOU CANNOT REACH THE TILE -------
return 0
if (!( usr.restrained() || (usr.lying && usr.buckled!=src) ))
// ------- YOU ARE NOT REASTRAINED -------
if (W)
// ------- YOU HAVE AN ITEM IN YOUR HAND - HANDLE ATTACKBY AND AFTERATTACK -------
var/ignoreAA = 0 //Ignore afterattack(). Surgery uses this.
if (t5)
ignoreAA = src.attackby(W, usr)
if (W && !ignoreAA)
W.afterattack(src, usr, (t5 ? 1 : 0), params)
else
// ------- YOU DO NOT HAVE AN ITEM IN YOUR HAND -------
if (istype(usr, /mob/living/carbon/human))
// ------- YOU ARE HUMAN -------
src.attack_hand(usr, usr.hand)
else
// ------- YOU ARE NOT HUMAN. WHAT ARE YOU - DETERMINED HERE AND PROPER ATTACK_MOBTYPE CALLED -------
if (istype(usr, /mob/living/carbon/monkey))
src.attack_paw(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/alien/humanoid))
if(usr.m_intent == "walk" && istype(usr, /mob/living/carbon/alien/humanoid/hunter))
usr.m_intent = "run"
usr.hud_used.move_intent.icon_state = "running"
usr.update_icons()
src.attack_alien(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/alien/larva))
src.attack_larva(usr)
else if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot))
src.attack_ai(usr, usr.hand)
else if(istype(usr, /mob/living/carbon/slime))
src.attack_slime(usr)
else if(istype(usr, /mob/living/simple_animal))
src.attack_animal(usr)
else
// ------- YOU ARE RESTRAINED. DETERMINE WHAT YOU ARE AND ATTACK WITH THE PROPER HAND_X PROC -------
if (istype(usr, /mob/living/carbon/human))
src.hand_h(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/monkey))
src.hand_p(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/alien/humanoid))
src.hand_al(usr, usr.hand)
else if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot))
src.hand_a(usr, usr.hand)
else
// ------- ITEM INACESSIBLE OR CLICKING ON SCREEN -------
if (istype(src, /obj/screen))
// ------- IT'S THE HUD YOU'RE CLICKING ON -------
usr.prev_move = usr.next_move
usr:lastDblClick = world.time + 2
if (usr.next_move < world.time)
usr.next_move = world.time + 2
else
return
// ------- 2 DECISECOND DELAY FOR CLICKING PASSED -------
if (!( usr.restrained() ))
// ------- YOU ARE NOT RESTRAINED -------
if ((W && !( istype(src, /obj/screen) )))
// ------- IT SHOULD NEVER GET TO HERE, DUE TO THE ISTYPE(SRC, /OBJ/SCREEN) FROM PREVIOUS IF-S - I TESTED IT WITH A DEBUG OUTPUT AND I COULDN'T GET THIST TO SHOW UP. -------
src.attackby(W, usr)
if (W)
W.afterattack(src, usr,, params)
else
// ------- YOU ARE NOT RESTRAINED, AND ARE CLICKING A HUD OBJECT -------
if (istype(usr, /mob/living/carbon/human))
src.attack_hand(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/monkey))
src.attack_paw(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/alien/humanoid))
src.attack_alien(usr, usr.hand)
else
// ------- YOU ARE RESTRAINED CLICKING ON A HUD OBJECT -------
if (istype(usr, /mob/living/carbon/human))
src.hand_h(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/monkey))
src.hand_p(usr, usr.hand)
else if (istype(usr, /mob/living/carbon/alien/humanoid))
src.hand_al(usr, usr.hand)
else
// ------- YOU ARE CLICKING ON AN OBJECT THAT'S INACCESSIBLE TO YOU AND IS NOT YOUR HUD -------
if((LASER in usr:mutations) && usr:a_intent == "harm" && world.time >= usr.next_move)
// ------- YOU HAVE THE LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED -------
var/turf/T = get_turf(usr)
var/turf/U = get_turf(src)
if(istype(usr, /mob/living/carbon/human))
usr:nutrition -= rand(1,5)
usr:handle_regular_hud_updates()
var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( usr.loc )
A.icon = 'icons/effects/genetics.dmi'
A.icon_state = "eyelasers"
playsound(usr.loc, 'sound/weapons/taser2.ogg', 75, 1)
A.firer = usr
A.def_zone = usr:get_organ_target()
A.original = src
A.current = T
A.yo = U.y - T.y
A.xo = U.x - T.x
spawn( 1 )
A.process()
usr.next_move = world.time + 6
return
Feedback is dumb and it doesn't matter
- oranges
- Code Maintainer
- Joined: Tue Apr 15, 2014 9:16 pm
- Byond Username: Optimumtact
- Github Username: optimumtact
- Location: #CHATSHITGETBANGED
Re: 'Please murder me slowly' pieces of code
Especially the start proc
Code: Select all
/obj/machinery/washing_machine/verb/start()
set name = "Start Washing"
set category = "Object"
set src in oview(1)
if( state != 4 )
usr << "The washing machine cannot run in this state."
return
if( locate(/mob,contents) )
state = 8
else
state = 5
update_icon()
sleep(200)
for(var/atom/A in contents)
A.clean_blood()
//Tanning!
for(var/obj/item/stack/sheet/hairlesshide/HH in contents)
var/obj/item/stack/sheet/wetleather/WL = new(src)
WL.amount = HH.amount
qdel(HH)
if(crayon)
var/wash_color
if(istype(crayon,/obj/item/toy/crayon))
var/obj/item/toy/crayon/CR = crayon
wash_color = CR.colourName
else if(istype(crayon,/obj/item/weapon/stamp))
var/obj/item/weapon/stamp/ST = crayon
wash_color = ST.item_color
if(wash_color)
var/new_jumpsuit_icon_state = ""
var/new_jumpsuit_item_state = ""
var/new_jumpsuit_name = ""
var/new_glove_icon_state = ""
var/new_glove_item_state = ""
var/new_glove_name = ""
var/new_shoe_icon_state = ""
var/new_shoe_name = ""
var/new_sheet_icon_state = ""
var/new_sheet_name = ""
var/new_softcap_icon_state = ""
var/new_softcap_name = ""
var/new_desc = "The colors are a bit dodgy."
for(var/T in typesof(/obj/item/clothing/under/color))
var/obj/item/clothing/under/color/J = new T
//world << "DEBUG: [wash_color] == [J.item_color]"
if(wash_color == J.item_color)
new_jumpsuit_icon_state = J.icon_state
new_jumpsuit_item_state = J.item_state
new_jumpsuit_name = J.name
qdel(J)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
qdel(J)
for(var/T in typesof(/obj/item/clothing/gloves))
var/obj/item/clothing/gloves/G = new T
//world << "DEBUG: [wash_color] == [J.item_color]"
if(wash_color == G.item_color)
new_glove_icon_state = G.icon_state
new_glove_item_state = G.item_state
new_glove_name = G.name
qdel(G)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
qdel(G)
for(var/T in typesof(/obj/item/clothing/shoes/sneakers))
var/obj/item/clothing/shoes/sneakers/S = new T
//world << "DEBUG: [wash_color] == [J.item_color]"
if(wash_color == S.item_color)
new_shoe_icon_state = S.icon_state
new_shoe_name = S.name
qdel(S)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
qdel(S)
for(var/T in typesof(/obj/item/weapon/bedsheet))
var/obj/item/weapon/bedsheet/B = new T
//world << "DEBUG: [wash_color] == [J.item_color]"
if(wash_color == B.item_color)
new_sheet_icon_state = B.icon_state
new_sheet_name = B.name
qdel(B)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
qdel(B)
for(var/T in typesof(/obj/item/clothing/head/soft))
var/obj/item/clothing/head/soft/H = new T
//world << "DEBUG: [wash_color] == [J.item_color]"
if(wash_color == H.item_color)
new_softcap_icon_state = H.icon_state
new_softcap_name = H.name
qdel(H)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
qdel(H)
if(new_jumpsuit_icon_state && new_jumpsuit_item_state && new_jumpsuit_name)
for(var/obj/item/clothing/under/color/J in contents)
//world << "DEBUG: YUP! FOUND IT!"
J.item_state = new_jumpsuit_item_state
J.icon_state = new_jumpsuit_icon_state
J.item_color = wash_color
J.name = new_jumpsuit_name
J.desc = new_desc
if(new_glove_icon_state && new_glove_item_state && new_glove_name)
for(var/obj/item/clothing/gloves/G in contents)
//world << "DEBUG: YUP! FOUND IT!"
G.item_state = new_glove_item_state
G.icon_state = new_glove_icon_state
G.item_color = wash_color
G.name = new_glove_name
G.desc = new_desc
if(new_shoe_icon_state && new_shoe_name)
for(var/obj/item/clothing/shoes/sneakers/S in contents)
//world << "DEBUG: YUP! FOUND IT!"
if (S.chained == 1)
S.chained = 0
S.slowdown = SHOES_SLOWDOWN
new /obj/item/weapon/handcuffs( src )
S.icon_state = new_shoe_icon_state
S.item_color = wash_color
S.name = new_shoe_name
S.desc = new_desc
if(new_sheet_icon_state && new_sheet_name)
for(var/obj/item/weapon/bedsheet/B in contents)
//world << "DEBUG: YUP! FOUND IT!"
B.icon_state = new_sheet_icon_state
B.item_color = wash_color
B.name = new_sheet_name
B.desc = new_desc
if(new_softcap_icon_state && new_softcap_name)
for(var/obj/item/clothing/head/soft/H in contents)
//world << "DEBUG: YUP! FOUND IT!"
H.icon_state = new_softcap_icon_state
H.item_color = wash_color
H.name = new_softcap_name
H.desc = new_desc
qdel(crayon)
crayon = null
if( locate(/mob,contents) )
state = 7
gibs_ready = 1
else
state = 4
update_icon()
- paprika
- Rarely plays
- Joined: Fri Apr 18, 2014 10:20 pm
- Byond Username: Paprka
- Location: in down bad
Re: 'Please murder me slowly' pieces of code
Oldman Robustin wrote:It's an established meme that coders don't play this game.
- MisterPerson
- Board Moderator
- Joined: Tue Apr 15, 2014 4:26 pm
- Byond Username: MisterPerson
Re: 'Please murder me slowly' pieces of code
Feedback is dumb and it doesn't matter
-
- Joined: Sat Apr 19, 2014 2:45 pm
- Byond Username: Perakp
Re: 'Please murder me slowly' pieces of code
Code: Select all
for (var/mob/living/silicon/robot/robo in mob_list)
if (!robo.connected_ai && robo.mind)
if (robo.stat != 2)
world << "<b>[robo.name] (Played by: [robo.mind.key]) survived as an AI-less borg! Its laws were:</b>"
else
world << "<b>[robo.name] (Played by: [robo.mind.key]) was unable to survive the rigors of being a cyborg without an AI. Its laws were:</b>"
if(robo) //How the hell do we lose robo between here and the world messages directly above this?
robo.laws.show_laws(world)
- oranges
- Code Maintainer
- Joined: Tue Apr 15, 2014 9:16 pm
- Byond Username: Optimumtact
- Github Username: optimumtact
- Location: #CHATSHITGETBANGED
Re: 'Please murder me slowly' pieces of code
Code: Select all
/obj/item/weapon/bombcore/training/proc/reset()
var/obj/machinery/syndicatebomb/holder = src.loc
if(istype(holder))
holder.open_panel = 0
if(holder.wires)
holder.wires.Shuffle()
holder.defused = 0
holder.update_icon()
holder.updateDialog()
- paprika
- Rarely plays
- Joined: Fri Apr 18, 2014 10:20 pm
- Byond Username: Paprka
- Location: in down bad
Re: 'Please murder me slowly' pieces of code
Code: Select all
usr << browse(body, "window=adminplayeropts;size=550x515")
feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
feedback_add_details("admin_verb","R") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
feedback_add_details("admin_verb","SAN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
Oldman Robustin wrote:It's an established meme that coders don't play this game.
- Ikarrus
- Joined: Fri Apr 18, 2014 2:17 am
- Byond Username: Ikarrus
- Github Username: Ikarrus
- Location: Canada
- Contact:
Re: 'Please murder me slowly' pieces of code
Who is this guy?
- JJRcop
- Joined: Wed Apr 23, 2014 1:52 am
- Byond Username: JJRcop
- Github Username: JJRcop
Re: 'Please murder me slowly' pieces of code
Code: Select all
/turf/simulated/floor/proc/MakeDirty()
if(prob(66)) //fastest possible exit 2/3 of the time
return
// These look weird if you make them dirty
if(istype(src, /turf/simulated/floor/carpet) || istype(src, /turf/simulated/floor/grass) || istype(src, /turf/simulated/floor/beach) || istype(src, /turf/simulated/floor/holofloor) || istype(src, /turf/simulated/floor/plating/snow) || istype(src, /turf/simulated/floor/plating/ironsand))
return
if(locate(/obj/structure/grille) in contents)
return
var/area/A = loc
//zero dirt
if(!istype(A) || istype(A, /area/centcom) || istype(A, /area/holodeck) || istype(A, /area/library) || istype(A, /area/janitor) || istype(A, /area/chapel) || istype(A, /area/mine/explored) || istype(A, /area/mine/unexplored) || istype(A, /area/solar) || istype(A, /area/atmos) || istype(A, /area/medical/virology))
return
//high dirt - 1/3
if(istype(A, /area/toxins/test_area) || istype(A, /area/mine/production) || istype(A, /area/mine/living_quarters) || istype(A, /area/mine/north_outpost) || istype(A, /area/mine/west_outpost) || istype(A, /area/wreck) || istype(A, /area/derelict) || istype(A, /area/djstation))
new /obj/effect/decal/cleanable/dirt(src) //vanilla, but it works
return
if(prob(80)) //mid dirt - 1/15
return
if(istype(A, /area/engine) || istype(A,/area/assembly) || istype(A,/area/maintenance) || istype(A,/area/construction))
//Blood, sweat, and oil. Oh, and dirt.
if(prob(3))
new /obj/effect/decal/cleanable/blood/old(src)
else
if(prob(35))
if(prob(4))
new /obj/effect/decal/cleanable/robot_debris/old(src)
else
new /obj/effect/decal/cleanable/oil(src)
else
new /obj/effect/decal/cleanable/dirt(src)
return
if(istype(A, /area/crew_quarters/toilet) || istype(A, /area/crew_quarters/locker/locker_toilet) || istype(A, /area/crew_quarters/bar))
if(prob(40))
if(prob(90))
new /obj/effect/decal/cleanable/vomit/old(src)
else
new /obj/effect/decal/cleanable/blood/old(src)
else
new /obj/effect/decal/cleanable/dirt(src)
return
if(istype(A, /area/quartermaster))
if(prob(75))
new /obj/effect/decal/cleanable/dirt(src)
else
new /obj/effect/decal/cleanable/oil(src)
return
if(prob(75)) //low dirt - 1/60
return
if(istype(A, /area/turret_protected) || istype(A, /area/security)) //chance of incident
if(prob(20))
if(prob(5))
new /obj/effect/decal/cleanable/blood/gibs/old(src)
else
new /obj/effect/decal/cleanable/blood/old(src)
else
new /obj/effect/decal/cleanable/dirt(src)
return
if(istype(A, /area/crew_quarters/kitchen)) //Kitchen messes
if(prob(60))
if(prob(50))
new /obj/effect/decal/cleanable/egg_smudge(src)
else
new /obj/effect/decal/cleanable/flour(src)
else if(prob(33))
new /obj/effect/decal/cleanable/dirt(src)
return
if(istype(A, /area/medical)) //Kept clean, but chance of blood
if(prob(66))
if(prob(5))
new /obj/effect/decal/cleanable/blood/gibs/old(src)
else
new /obj/effect/decal/cleanable/blood/old(src)
else
if(prob(30))
if(istype(A, /area/medical/morgue))
new /obj/item/weapon/ectoplasm(src)
else
new /obj/effect/decal/cleanable/vomit/old(src)
return
if(istype(A, /area/toxins))
if(prob(80))
new /obj/effect/decal/cleanable/dirt(src)
else
new /obj/effect/decal/cleanable/greenglow(src) //this cleans itself up but it might startle you when you see it.
return
//default
new /obj/effect/decal/cleanable/dirt(src)
return
- Jordie0608
- Site Admin
- Joined: Tue Apr 15, 2014 1:33 pm
- Byond Username: Jordie0608
- Github Username: Jordie0608
- Location: Spiderland, Australia
Re: 'Please murder me slowly' pieces of code
Code: Select all
///proc/UpdateTime() //No idea why i made this a proc.
// CMinutes = (world.realtime / 10) / 60
// return 1
Send me a PM if you have any issues, concerns or praise of fishfood to express about the forums.
- Thunder11
- In-Game Admin
- Joined: Fri Apr 18, 2014 12:55 pm
- Byond Username: Thunder12345
- Github Username: Thunder12345
- Location: Scotland, UK
Re: 'Please murder me slowly' pieces of code
Code: Select all
/obj/item/weapon/gun/projectile/automatic/c20r/update_icon()
..()
icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
return
-
- Github User
- Joined: Fri Apr 18, 2014 1:50 pm
- Byond Username: Xxnoob
- Github Username: xxalpha
Re: 'Please murder me slowly' pieces of code
that return thoughJordie0608 wrote:Code: Select all
///proc/UpdateTime() //No idea why i made this a proc. // CMinutes = (world.realtime / 10) / 60 // return 1
-
- Joined: Fri May 01, 2015 7:52 pm
- Byond Username: MosquitoMan
Re: 'Please murder me slowly' pieces of code
Code: Select all
/obj/item/robot_parts/robot_suit/proc/check_completion()
if(src.l_arm && src.r_arm)
if(src.l_leg && src.r_leg)
if(src.chest && src.head)
feedback_inc("cyborg_frames_built",1)
return 1
return 0
- DemonFiren
- Joined: Sat Dec 13, 2014 9:15 pm
- Byond Username: DemonFiren
Re: 'Please murder me slowly' pieces of code
- Remie Richards
- Joined: Thu Apr 17, 2014 7:11 pm
- Byond Username: CrimsonVision
- Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
- Contact:
Re: 'Please murder me slowly' pieces of code
Eh, you can't really fix that much.mosquitoman wrote:just found this:
Code: Select all
/obj/item/robot_parts/robot_suit/proc/check_completion() if(src.l_arm && src.r_arm) if(src.l_leg && src.r_leg) if(src.chest && src.head) feedback_inc("cyborg_frames_built",1) return 1 return 0
you could move the 3 ifs onto one if, that's about it.
-
- Github User
- Joined: Fri Apr 18, 2014 1:50 pm
- Byond Username: Xxnoob
- Github Username: xxalpha
Re: 'Please murder me slowly' pieces of code
- oranges
- Code Maintainer
- Joined: Tue Apr 15, 2014 9:16 pm
- Byond Username: Optimumtact
- Github Username: optimumtact
- Location: #CHATSHITGETBANGED
Re: 'Please murder me slowly' pieces of code
Code: Select all
dat += text("<HR>\n>[]<BR>\n<A href='?src=\ref[];type=1'>1</A>-<A href='?src=\ref[];type=2'>2</A>-<A href='?src=\ref[];type=3'>3</A><BR>\n<A href='?src=\ref[];type=4'>4</A>-<A href='?src=\ref[];type=5'>5</A>-<A href='?src=\ref[];type=6'>6</A><BR>\n<A href='?src=\ref[];type=7'>7</A>-<A href='?src=\ref[];type=8'>8</A>-<A href='?src=\ref[];type=9'>9</A><BR>\n<A href='?src=\ref[];type=R'>R</A>-<A href='?src=\ref[];type=0'>0</A>-<A href='?src=\ref[];type=E'>E</A><BR>\n</TT>", message, src, src, src, src, src, src, src, src, src, src, src, src)
- PKPenguin321
- Site Admin
- Joined: Tue Jul 01, 2014 7:02 pm
- Byond Username: PKPenguin321
- Github Username: PKPenguin321
- Location: U S A, U S A, U S A
Re: 'Please murder me slowly' pieces of code
i have three other top secret characters as well.
tell the best admin how good he is
- Thunder11
- In-Game Admin
- Joined: Fri Apr 18, 2014 12:55 pm
- Byond Username: Thunder12345
- Github Username: Thunder12345
- Location: Scotland, UK
Re: 'Please murder me slowly' pieces of code
- phil235
- Joined: Thu Apr 17, 2014 11:39 am
- Byond Username: Phil235
Re: 'Please murder me slowly' pieces of code
Code: Select all
if (M.stat !=2)
if(M.mind && (M.mind.assigned_role == "Chaplain"))
user << "<span class='warning'>You can't heal yourself!</span>"
return
if ((istype(M, /mob/living/carbon/human) && prob(60)))
bless(M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/message_halt = 0
for(var/obj/item/bodypart/affecting in H.bodyparts)
if(affecting.status == ORGAN_ORGANIC)
if(message_halt == 0)
M.visible_message("<span class='notice'>[user] heals [M] with the power of [src.deity_name]!</span>")
M << "<span class='boldnotice'>May the power of [src.deity_name] compel you to be healed!</span>"
playsound(src.loc, "punch", 25, 1, -1)
message_halt = 1
else
user << "<span class='warning'>[src.deity_name] refuses to heal this metallic taint!</span>"
return
else
if(ishuman(M) && !istype(M:head, /obj/item/clothing/head/helmet))
M.adjustBrainLoss(10)
M << "<span class='danger'>You feel dumber.</span>"
M.visible_message("<span class='danger'>[user] beats [M] over the head with [src]!</span>", \
"<span class='userdanger'>[user] beats [M] over the head with [src]!</span>")
playsound(src.loc, "punch", 25, 1, -1)
add_logs(user, M, "attacked", src)
else if(M.stat == 2)
M.visible_message("<span class='danger'>[user] smacks [M]'s lifeless corpse with [src].</span>")
playsound(src.loc, "punch", 25, 1, -1)
return
- MrStonedOne
- Host
- Joined: Mon Apr 14, 2014 10:56 pm
- Byond Username: MrStonedOne
- Github Username: MrStonedOne
Re: 'Please murder me slowly' pieces of code
https://github.com/tgstation/tgstation/ ... tumvars.dm
but, more importantly, this chunk of code from mass modify:
Code: Select all
switch(class)
if("restore to default")
O.vars[variable] = initial(O.vars[variable])
if(method)
if(istype(O, /mob))
for(var/mob/M in mob_list)
if ( istype(M , O.type) )
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if (M.type == O.type)
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
if("edit referenced object")
return .(O.vars[variable])
if("text")
var/new_value = input("Enter new text:","Text",O.vars[variable]) as message|null
if(new_value == null) return
var/process_vars = 0
var/unique = 0
if(findtext(new_value,"\["))
process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No")
if(process_vars == "Yes")
process_vars = 1
unique = alert(usr,"Process vars unique to each instance, or same for all?","Variable Association","Unique","Same")
if(unique == "Unique")
unique = 1
else
unique = 0
else
process_vars = 0
var/pre_processing = new_value
var/list/varsvars = list()
if(process_vars)
varsvars = string2listofvars(new_value, O)
if(varsvars.len)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[O.vars[V]]")
O.vars[variable] = new_value
//Convert the string vars for anything that's not O
if(method)
if(istype(O, /mob))
for(var/mob/M in mob_list)
if ( istype(M , O.type) )
new_value = pre_processing //reset new_value, ready to convert it uniquely for the next iteration
if(process_vars)
if(unique)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[M.vars[V]]")
else
new_value = O.vars[variable] //We already processed the non-unique form for O, reuse it
M.vars[variable] = new_value
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if ( istype(A , O.type) )
new_value = pre_processing
if(process_vars)
if(unique)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]")
else
new_value = O.vars[variable]
A.vars[variable] = new_value
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if ( istype(A , O.type) )
new_value = pre_processing
if(process_vars)
if(unique)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]")
else
new_value = O.vars[variable]
A.vars[variable] = new_value
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if (M.type == O.type)
new_value = pre_processing
if(process_vars)
if(unique)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[M.vars[V]]")
else
new_value = O.vars[variable]
M.vars[variable] = new_value
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if (A.type == O.type)
new_value = pre_processing
if(process_vars)
if(unique)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]")
else
new_value = O.vars[variable]
A.vars[variable] = new_value
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if (A.type == O.type)
new_value = pre_processing
if(process_vars)
if(unique)
for(var/V in varsvars)
new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]")
else
new_value = O.vars[variable]
A.vars[variable] = new_value
CHECK_TICK
if("num")
var/new_value = input("Enter new number:","Num",\
O.vars[variable]) as num|null
if(new_value == null) return
if(variable=="luminosity")
O.SetLuminosity(new_value)
else
O.vars[variable] = new_value
if(method)
if(istype(O, /mob))
for(var/mob/M in mob_list)
if ( istype(M , O.type) )
if(variable=="luminosity")
M.SetLuminosity(new_value)
else
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if ( istype(A , O.type) )
if(variable=="luminosity")
A.SetLuminosity(new_value)
else
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if ( istype(A , O.type) )
if(variable=="luminosity")
A.SetLuminosity(new_value)
else
A.vars[variable] = O.vars[variable]
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if (M.type == O.type)
if(variable=="luminosity")
M.SetLuminosity(new_value)
else
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if (A.type == O.type)
if(variable=="luminosity")
A.SetLuminosity(new_value)
else
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if (A.type == O.type)
if(variable=="luminosity")
A.SetLuminosity(new_value)
else
A.vars[variable] = O.vars[variable]
CHECK_TICK
if("type")
var/new_value
new_value = input("Enter type:","Type",O.vars[variable]) as null|anything in typesof(/obj,/mob,/area,/turf)
if(new_value == null) return
O.vars[variable] = new_value
if(method)
if(istype(O, /mob))
for(var/mob/M in mob_list)
if ( istype(M , O.type) )
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if (M.type == O.type)
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
if("file")
var/new_value = input("Pick file:","File",O.vars[variable]) as null|file
if(new_value == null) return
O.vars[variable] = new_value
if(method)
if(istype(O, /mob))
for(var/mob/M in mob_list)
if ( istype(M , O.type) )
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O.type, /obj))
for(var/obj/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O.type, /turf))
for(var/turf/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if (M.type == O.type)
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
if("icon")
var/new_value = input("Pick icon:","Icon",O.vars[variable]) as null|icon
if(new_value == null) return
O.vars[variable] = new_value
if(method)
if(istype(O, /mob))
for(var/mob/M in mob_list)
if ( istype(M , O.type) )
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if ( istype(A , O.type) )
A.vars[variable] = O.vars[variable]
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if (M.type == O.type)
M.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if (A.type == O.type)
A.vars[variable] = O.vars[variable]
CHECK_TICK
if(method)
if(istype(O,/mob))
for(var/mob/M in mob_list)
if(istype(M,O.type))
M.on_varedit(variable)
CHECK_TICK
else if(istype(O,/obj))
for(var/obj/A in world)
if(istype(A,O.type))
A.on_varedit(variable)
CHECK_TICK
else if(istype(O,/turf))
for(var/turf/A in block(locate(1,1,1),locate(world.maxx,world.maxy,world.maxz)))
if(istype(A,O.type))
A.on_varedit(variable)
CHECK_TICK
else
if(istype(O, /mob))
for(var/mob/M in mob_list)
if(M.type == O.type)
M.on_varedit(variable)
CHECK_TICK
else if(istype(O, /obj))
for(var/obj/A in world)
if(A.type == O.type)
A.on_varedit(variable)
CHECK_TICK
else if(istype(O, /turf))
for(var/turf/A in world)
if(A.type == O.type)
A.on_varedit(variable)
CHECK_TICK
- Remie Richards
- Joined: Thu Apr 17, 2014 7:11 pm
- Byond Username: CrimsonVision
- Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
- Contact:
Re: 'Please murder me slowly' pieces of code
Hey! don't include the custom var embed section, I wrote that and it's -fine-MrStonedOne wrote:This entire file:
https://github.com/tgstation/tgstation/ ... tumvars.dm
but, more importantly, this chunk of code from mass modify:
Code: Select all
switch(class) if("restore to default") O.vars[variable] = initial(O.vars[variable]) if(method) if(istype(O, /mob)) for(var/mob/M in mob_list) if ( istype(M , O.type) ) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if (M.type == O.type) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK if("edit referenced object") return .(O.vars[variable]) if("text") var/new_value = input("Enter new text:","Text",O.vars[variable]) as message|null if(new_value == null) return var/process_vars = 0 var/unique = 0 if(findtext(new_value,"\[")) process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") if(process_vars == "Yes") process_vars = 1 unique = alert(usr,"Process vars unique to each instance, or same for all?","Variable Association","Unique","Same") if(unique == "Unique") unique = 1 else unique = 0 else process_vars = 0 var/pre_processing = new_value var/list/varsvars = list() if(process_vars) varsvars = string2listofvars(new_value, O) if(varsvars.len) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[O.vars[V]]") O.vars[variable] = new_value //Convert the string vars for anything that's not O if(method) if(istype(O, /mob)) for(var/mob/M in mob_list) if ( istype(M , O.type) ) new_value = pre_processing //reset new_value, ready to convert it uniquely for the next iteration if(process_vars) if(unique) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[M.vars[V]]") else new_value = O.vars[variable] //We already processed the non-unique form for O, reuse it M.vars[variable] = new_value CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if ( istype(A , O.type) ) new_value = pre_processing if(process_vars) if(unique) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") else new_value = O.vars[variable] A.vars[variable] = new_value CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if ( istype(A , O.type) ) new_value = pre_processing if(process_vars) if(unique) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") else new_value = O.vars[variable] A.vars[variable] = new_value CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if (M.type == O.type) new_value = pre_processing if(process_vars) if(unique) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[M.vars[V]]") else new_value = O.vars[variable] M.vars[variable] = new_value CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if (A.type == O.type) new_value = pre_processing if(process_vars) if(unique) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") else new_value = O.vars[variable] A.vars[variable] = new_value CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if (A.type == O.type) new_value = pre_processing if(process_vars) if(unique) for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") else new_value = O.vars[variable] A.vars[variable] = new_value CHECK_TICK if("num") var/new_value = input("Enter new number:","Num",\ O.vars[variable]) as num|null if(new_value == null) return if(variable=="luminosity") O.SetLuminosity(new_value) else O.vars[variable] = new_value if(method) if(istype(O, /mob)) for(var/mob/M in mob_list) if ( istype(M , O.type) ) if(variable=="luminosity") M.SetLuminosity(new_value) else M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if ( istype(A , O.type) ) if(variable=="luminosity") A.SetLuminosity(new_value) else A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if ( istype(A , O.type) ) if(variable=="luminosity") A.SetLuminosity(new_value) else A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if (M.type == O.type) if(variable=="luminosity") M.SetLuminosity(new_value) else M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if (A.type == O.type) if(variable=="luminosity") A.SetLuminosity(new_value) else A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if (A.type == O.type) if(variable=="luminosity") A.SetLuminosity(new_value) else A.vars[variable] = O.vars[variable] CHECK_TICK if("type") var/new_value new_value = input("Enter type:","Type",O.vars[variable]) as null|anything in typesof(/obj,/mob,/area,/turf) if(new_value == null) return O.vars[variable] = new_value if(method) if(istype(O, /mob)) for(var/mob/M in mob_list) if ( istype(M , O.type) ) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if (M.type == O.type) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK if("file") var/new_value = input("Pick file:","File",O.vars[variable]) as null|file if(new_value == null) return O.vars[variable] = new_value if(method) if(istype(O, /mob)) for(var/mob/M in mob_list) if ( istype(M , O.type) ) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O.type, /obj)) for(var/obj/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O.type, /turf)) for(var/turf/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if (M.type == O.type) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK if("icon") var/new_value = input("Pick icon:","Icon",O.vars[variable]) as null|icon if(new_value == null) return O.vars[variable] = new_value if(method) if(istype(O, /mob)) for(var/mob/M in mob_list) if ( istype(M , O.type) ) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if ( istype(A , O.type) ) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if (M.type == O.type) M.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if (A.type == O.type) A.vars[variable] = O.vars[variable] CHECK_TICK if(method) if(istype(O,/mob)) for(var/mob/M in mob_list) if(istype(M,O.type)) M.on_varedit(variable) CHECK_TICK else if(istype(O,/obj)) for(var/obj/A in world) if(istype(A,O.type)) A.on_varedit(variable) CHECK_TICK else if(istype(O,/turf)) for(var/turf/A in block(locate(1,1,1),locate(world.maxx,world.maxy,world.maxz))) if(istype(A,O.type)) A.on_varedit(variable) CHECK_TICK else if(istype(O, /mob)) for(var/mob/M in mob_list) if(M.type == O.type) M.on_varedit(variable) CHECK_TICK else if(istype(O, /obj)) for(var/obj/A in world) if(A.type == O.type) A.on_varedit(variable) CHECK_TICK else if(istype(O, /turf)) for(var/turf/A in world) if(A.type == O.type) A.on_varedit(variable) CHECK_TICK
- MrStonedOne
- Host
- Joined: Mon Apr 14, 2014 10:56 pm
- Byond Username: MrStonedOne
- Github Username: MrStonedOne
Re: 'Please murder me slowly' pieces of code
Code: Select all
var/list/typecache = list(D.type = 1)
if (method)
typecache = typecacheof(typecache)
var/list/items
if(istype(O, /turf))
for(var/turf/T in world)
if(typecache[T.type])
items += T
else if(istype(O, /mob))
for(var/mob/M in mob_list)
if(typecache[M.type])
items += M
...
switch (class)
...
if ("text")
...
for(var/thing in items)
var/datum/D = thing
D.vars[variable] = newvalue
By using a type cache (that we only expand to all subtypes if method is true) we can remove the if(method) thats repeated all over the place.
By using a pre-calculated list, we can prevent having to repeat that else if of istypes()
By repeating your ifs for calculated vars across all the types, you contributed to the mess. =P
Not that you had much of a choice, we didn't know about typecaches then.
- Remie Richards
- Joined: Thu Apr 17, 2014 7:11 pm
- Byond Username: CrimsonVision
- Location: England, UK, Earth, Sol, Milky Way, Local Group, Virgo Supercluster, Known Universe
- Contact:
Re: 'Please murder me slowly' pieces of code
- MimicFaux
- Joined: Sun Apr 10, 2016 10:49 pm
- Byond Username: MimicFaux
- Location: Spaced by Mass Driver
Re: 'Please murder me slowly' pieces of code
- TwitchTail13
- Joined: Wed Feb 11, 2015 2:06 am
- Byond Username: TwitchTail13
Re: 'Please murder me slowly' pieces of code
No wonder this game is laggy. Yanderedev must have programmed it.
Shaps wrote:The fact that you're asking if you need a reason to kill someone is deeply, deeply troubling
-
- Github User
- Joined: Fri Apr 18, 2014 1:50 pm
- Byond Username: Xxnoob
- Github Username: xxalpha
Re: 'Please murder me slowly' pieces of code
- The Ultimate Chimera
- Joined: Wed Feb 03, 2016 6:31 am
- Byond Username: The Ultimate Chimera
- Location: The Lifeweb
Re: 'Please murder me slowly' pieces of code
-
- Github User
- Joined: Fri Apr 18, 2014 1:50 pm
- Byond Username: Xxnoob
- Github Username: xxalpha
Re: 'Please murder me slowly' pieces of code
- Supermichael777
- Joined: Sun Feb 01, 2015 3:42 am
- Byond Username: Supermichael777
- Location: Silver II hell
Re: 'Please murder me slowly' pieces of code
Code: Select all
/obj/item/weapon/katana
name = "katana"
desc = "A finely made Japanese sword, expertly crafted by a dedicated weaponsmith. It has some foreign letters carved into the hilt."
icon_state = "katana"
item_state = "katana"
flags = FPRINT | CONDUCT
slot_flags = SLOT_BELT | SLOT_BACK
force = 40
wait too many serch results
Code: Select all
/obj/item/weapon/butterfly/katana
name = "katana"
desc = "A ancient weapon from Japan."
icon_state = "samurai"
force = 50
Code: Select all
/obj/item/weapon/butterfly
name = "butterfly knife"
desc = "A basic metal blade concealed in a lightweight plasteel grip. Small enough when folded to fit in a pocket."
icon_state = "butterflyknife"
item_state = null
hitsound = null
var/active = 0
w_class = 2
force = 8
sharp = 0
edge = 0
throw_speed = 3
throw_range = 4
throwforce = 7
attack_verb = list("patted", "tapped")
attack_speed = 4
Code: Select all
/obj/item/weapon/butterfly/attack_self(mob/user)
active = !active
if(active)
user << "<span class='notice'>You flip out your [src].</span>"
playsound(user, 'sound/weapons/flipblade.ogg', 15, 1)
force = 15 //bay adjustments
throwforce = 12
edge = 1
sharp = 1
hitsound = 'sound/weapons/bladeslice.ogg'
icon_state += "_open"
w_class = 3
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
else
user << "<span class='notice'>The butterfly knife can now be concealed.</span>"
force = initial(force)
edge = 0
sharp = 0
hitsound = initial(hitsound)
icon_state = initial(icon_state)
w_class = initial(w_class)
attack_verb = initial(attack_verb)
add_fingerprint(user)
TLDR; CM has a katana that is literal a folded knife
- Ikarrus
- Joined: Fri Apr 18, 2014 2:17 am
- Byond Username: Ikarrus
- Github Username: Ikarrus
- Location: Canada
- Contact:
Re: 'Please murder me slowly' pieces of code
Who is this guy?
- Mervill
- Joined: Sat Oct 29, 2016 7:43 pm
- Byond Username: Mervill
Re: 'Please murder me slowly' pieces of code
Code: Select all
/obj/machinery/ai_status_display/attack_ai(mob/living/silicon/ai/user)
if(isAI(user))
user.ai_statuschange()
<MrStonedOne> so many things in the world had to go wrong for all of this to end up here.... if any one thing had gone right, ss13 wouldn't exist
- oranges
- Code Maintainer
- Joined: Tue Apr 15, 2014 9:16 pm
- Byond Username: Optimumtact
- Github Username: optimumtact
- Location: #CHATSHITGETBANGED
Re: 'Please murder me slowly' pieces of code
Code: Select all
/datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume)
if(!..())
return
if(!M.has_dna())
return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method==PATCH || method==INJECT)
M.randmuti()
if(prob(98))
M.randmutb()
else
M.randmutg()
M.updateappearance()
M.domutcheck()
..()
-
- Joined: Sun Oct 26, 2014 5:13 am
- Byond Username: Lzimann
- Github Username: lzimann
Re: 'Please murder me slowly' pieces of code
Code: Select all
/proc/is_revolutionary(mob/M)
return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.revolutionaries
/proc/is_head_revolutionary(mob/M)
return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.head_revolutionaries
/proc/is_revolutionary_in_general(mob/M)
return is_revolutionary(M) || is_head_revolutionary(M)
- PKPenguin321
- Site Admin
- Joined: Tue Jul 01, 2014 7:02 pm
- Byond Username: PKPenguin321
- Github Username: PKPenguin321
- Location: U S A, U S A, U S A
Re: 'Please murder me slowly' pieces of code
What's so bad about this? I usually get these but this one's readable and not awfuloranges wrote:Code: Select all
/datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume) if(!..()) return if(!M.has_dna()) return //No robots, AIs, aliens, Ians or other mobs should be affected by this. if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method==PATCH || method==INJECT) M.randmuti() if(prob(98)) M.randmutb() else M.randmutg() M.updateappearance() M.domutcheck() ..()
i have three other top secret characters as well.
tell the best admin how good he is
- oranges
- Code Maintainer
- Joined: Tue Apr 15, 2014 9:16 pm
- Byond Username: Optimumtact
- Github Username: optimumtact
- Location: #CHATSHITGETBANGED
Re: 'Please murder me slowly' pieces of code
PKPenguin321 wrote:What's so bad about this? I usually get these but this one's readable and not awfuloranges wrote:Code: Select all
/datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume) if(!..()) return ... ..()
Who is online
Users browsing this forum: No registered users