Honkbots: The Clown's lil helpers. (#31139)

* Honkbots 0.9.0

Old code, needs testing.

* Honkbots 0.9.1

Small Fixes - Part 1

* Honkbot 0.9.1b

Fixes

* Honkbots 0.9.2

Added sound cooldown, fixes.

* Honkbots 0.9.5

Clown Box & Honkbot Assembly Code

* 0.9.5.a

oops

* Honkbots 1.0.0

Final touches and fixes.
Clown Box finished.
Assembly functioning.
Honkbots tested and ready to go.
Its time.

* Honkbots 1.0.1

Initialize and . = ..()

* Honkbots 1.0.2

Fixes and Changes
====
Nerfed Brute/Thermal Resist
Buffed Health (to avoid 1-shot)
Added HONK_BOT define

* Honkbots 1.0.3

Removed the cardboard assembly from death gibs.
Admin Bwoink removed from emagged soundtrack.
Honkbot now release an evil laugh when emagged.
Fixed strange behaviors on emagged level 1
Added a check against stamping multiple cardboard sheets.
Stamping a Clown Box now plays the bike horn, once.
Clown Boxes no longer get automatically placed in hands.
Various other fixes.

* Honkbots 1.0.3a

* Honkbots 1.0.3.b

Fixes.

* Honkbots 1.0.4

*Added an emote ping upon assembly creation.
*Enabled either Theatre or Robotics for access. ((fixing needing both))
*Honkbots are now more forgiving after being hit.
**Airhorn stun_attack now deals slight ear damage, for about 5 seconds.
**Cardboard no longer drops upon death. Robot arms have 50% chance.
**Using a new get_sfx() list when emagged.
**Optimization and other minor fixes.

* Honkbots 1.0.4.a

Missed it.

* Honkbots 1.0.4.b

use(1) and (client)

* Honkbots 1.0.4.c

Moved proc

* Honkbots 1.0.5

*Code Optimization
*Renaming w/ Pen (how could I even forget this)
*Assembly Defines

I'm afraid I'm simply out of my depth with the suggested use(1) rework.

* Honkbots 1.0.5.c

Reworked cardboard stamping.

It now works in the hands and on the ground, either solo or in stacks, and prevent itself being used in backpacks.

* Honkbots 1.0.5.d

Final

* Honkbots 1.0.5.e

comment

* 1.0.5.f

Optimization

* Honkbots 1.0.5.g

Missed requested stuff

* Honkbots 1.0.6

Requested changes.

* Honkbots 1.0.6a

Oops.

* Honkbots 1.0.6.c

Bugfix - Prevent building in backpacks.
Make sure they spawn on turf.

* Honkbots 1.0.7

one less spawn(0)
flag optimization
else return ..()

* Honkbots 1.0.7.a

Get rids of a lot of client checks at the cost of automatic AI retoration.

* Honkbots 1.0.7.b

Added judgment_criteria()
changed assess_threat to use judgment

* Honkbots 1.0.7.c

final = NONE
This commit is contained in:
Mercenaryblue
2017-10-15 17:43:58 -04:00
committed by CitadelStationBot
parent be2dc49384
commit 3690fc56c2
11 changed files with 461 additions and 2 deletions
@@ -256,6 +256,18 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
/obj/item/stack/sheet/cardboard/fifty
amount = 50
/obj/item/stack/sheet/cardboard/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/stamp/clown) && !istype(loc, /obj/item/storage))
var/atom/droploc = drop_location()
if(use(1))
playsound(I, 'sound/items/bikehorn.ogg', 50, 1, -1)
to_chat(user, "<span class='notice'>You stamp the cardboard! Its a clown box! Honk!</span>")
if (amount >= 0)
new/obj/item/storage/box/clown(droploc) //bugfix
else
. = ..()
/*
* Runed Metal
*/
+24 -1
View File
@@ -607,6 +607,29 @@
playsound(loc, "rustle", 50, 1, -5)
user.visible_message("<span class='notice'>[user] hugs \the [src].</span>","<span class='notice'>You hug \the [src].</span>")
/////clown box & honkbot assembly
obj/item/storage/box/clown
name = "clown box"
desc = "A colorful cardboard box for the clown"
icon_state = "clownbox"
illustration = null
/obj/item/storage/box/clown/attackby(obj/item/I, mob/user, params)
if((istype(I, /obj/item/bodypart/l_arm/robot)) || (istype(I, /obj/item/bodypart/r_arm/robot)))
if(contents.len) //prevent accidently deleting contents
to_chat(user, "<span class='warning'>You need to empty [src] out first!</span>")
return
if(!user.temporarilyRemoveItemFromInventory(I))
return
qdel(I)
to_chat(user, "<span class='notice'>You add some wheels to the [src]! You've got an honkbot assembly now! Honk!</span>")
var/obj/item/honkbot_assembly/A = new
qdel(src)
user.put_in_hands(A)
else
return ..()
//////
/obj/item/storage/box/hug/medical/PopulateContents()
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/ointment(src)
@@ -730,7 +753,7 @@
/obj/item/storage/box/ingredients //This box is for the randomely chosen version the chef spawns with, it shouldn't actually exist.
name = "ingredients box"
illustration = "fruit"
var/theme_name
var/theme_name
/obj/item/storage/box/ingredients/Initialize()
. = ..()