[READY] Adds rideable Goliaths (#49003)

* adds rideable goliaths

* stamding on the emdge

* plems work

* this should be it

* FUCK YOU TRAVIS

* primal friendly

* ok athath buddy

* mmm grayons

* sprite gang

* placeholder sprite, works till someone makes a new one maybe haha

* lets do this

* An object tames a monstrous beast somehow. More news at 5.
This commit is contained in:
Fikou
2020-02-07 17:00:07 +01:00
committed by GitHub
parent de1c476e1a
commit 8deeceefb6
11 changed files with 71 additions and 7 deletions
@@ -786,3 +786,11 @@
/obj/item/shovel/spade = 1)
result = /obj/item/shovel/serrated
category = CAT_PRIMAL
/datum/crafting_recipe/lasso
name = "Bone Lasso"
reqs = list(
/obj/item/stack/sheet/bone = 1,
/obj/item/stack/sheet/sinew = 5)
result = /obj/item/key/lasso
category = CAT_PRIMAL
+1 -1
View File
@@ -197,7 +197,7 @@
handle_vehicle_layer()
handle_vehicle_offsets()
else
to_chat(user, "<span class='warning'>You'll need the keys in one of your hands to [drive_verb] [AM].</span>")
to_chat(user, "<span class='warning'>You'll need a special item in one of your hands to [drive_verb] [AM].</span>")
/datum/component/riding/proc/Unbuckle(atom/movable/M)
addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE)
@@ -160,6 +160,7 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \
new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7), \
new/datum/stack_recipe("leather shoes", /obj/item/clothing/shoes/laceup, 2), \
new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \
new/datum/stack_recipe("saddle", /obj/item/saddle, 5), \
))
/obj/item/stack/sheet/leather/get_main_recipes()
+2 -1
View File
@@ -288,7 +288,8 @@
/obj/item/organ/regenerative_core,
/obj/item/wormhole_jaunter,
/obj/item/storage/bag/plants,
/obj/item/stack/marker_beacon
/obj/item/stack/marker_beacon,
/obj/item/key/lasso
))
@@ -169,6 +169,7 @@
D.set_vehicle_dir_layer(NORTH, OBJ_LAYER)
D.set_vehicle_dir_layer(EAST, OBJ_LAYER)
D.set_vehicle_dir_layer(WEST, OBJ_LAYER)
D.drive_verb = "ride"
/mob/living/simple_animal/cow/Life()
. = ..()
@@ -32,6 +32,7 @@
move_force = MOVE_FORCE_VERY_STRONG
move_resist = MOVE_FORCE_VERY_STRONG
pull_force = MOVE_FORCE_VERY_STRONG
gender = MALE//lavaland elite goliath says that i'''' 't s female and i ''t s stronger because of sexual dimorphism, so normal goliaths should be male
var/pre_attack = 0
var/pre_attack_icon = "Goliath_preattack"
loot = list(/obj/item/stack/sheet/animalhide/goliath_hide)
@@ -49,9 +50,11 @@
return
icon_state = pre_attack_icon
/mob/living/simple_animal/hostile/asteroid/goliath/revive(full_heal = FALSE, admin_revive = FALSE)
/mob/living/simple_animal/hostile/asteroid/goliath/revive(full_heal = FALSE, admin_revive = FALSE)//who the fuck anchors mobs
if(..())
anchored = TRUE
move_force = MOVE_FORCE_VERY_STRONG
move_resist = MOVE_FORCE_VERY_STRONG
pull_force = MOVE_FORCE_VERY_STRONG
. = 1
/mob/living/simple_animal/hostile/asteroid/goliath/death(gibbed)
@@ -99,6 +102,39 @@
loot = list()
stat_attack = UNCONSCIOUS
robust_searching = 1
food_type = list(/obj/item/reagent_containers/food/snacks/customizable/salad/ashsalad, /obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup, /obj/item/reagent_containers/food/snacks/grown/ash_flora)//use lavaland plants to feed the lavaland monster
tame_chance = 10
bonus_tame_chance = 5
var/saddled = FALSE
/mob/living/simple_animal/hostile/asteroid/goliath/beast/tamed(whomst)
if(isliving(whomst))
var/mob/living/fren = whomst
friends = fren
faction = fren.faction.Copy()
..()
/mob/living/simple_animal/hostile/asteroid/goliath/beast/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/saddle) && !saddled)
if(tame && do_after(user,55,target=src))
user.visible_message("<span class='notice'>You manage to put [O] on [src], you can now ride [p_them()].</span>")
qdel(O)
saddled = TRUE
can_buckle = TRUE
buckle_lying = FALSE
add_overlay("goliath_saddled")
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8), TEXT_SOUTH = list(0, 8), TEXT_EAST = list(-2, 8), TEXT_WEST = list(2, 8)))
D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
D.set_vehicle_dir_layer(NORTH, OBJ_LAYER)
D.set_vehicle_dir_layer(EAST, OBJ_LAYER)
D.set_vehicle_dir_layer(WEST, OBJ_LAYER)
D.keytype = /obj/item/key/lasso
D.drive_verb = "ride"
else
user.visible_message("<span class='warning'>[src] is rocking around! You can't put the saddle on!</span>")
return
..()
/mob/living/simple_animal/hostile/asteroid/goliath/beast/random/Initialize()
. = ..()
@@ -202,3 +238,9 @@
icon_state = "Goliath_tentacle_retract"
deltimer(timerid)
timerid = QDEL_IN(src, 7)
/obj/item/saddle
name = "saddle"
desc = "This saddle will solve all your problems with being killed by lava beasts!"
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "saddle"
@@ -184,12 +184,12 @@
return
if (prob(tame_chance)) //note: lack of feedback message is deliberate, keep them guessing!
tame = TRUE
tamed()
tamed(user)
else
tame_chance += bonus_tame_chance
///Extra effects to add when the mob is tamed, such as adding a riding component
/mob/living/simple_animal/proc/tamed()
/mob/living/simple_animal/proc/tamed(whomst)
return
/mob/living/simple_animal/examine(mob/user)
+1 -1
View File
@@ -15,7 +15,7 @@
/obj/vehicle/ridden/lavaboat/Initialize()
. = ..()
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.keytype = /obj/item/oar
D.keytype = list(/obj/item/oar)
D.allowed_turf_typecache = typecacheof(allowed_turf)
/obj/item/oar
+11
View File
@@ -13,3 +13,14 @@
desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
icon_state = "keyjanitor"
/obj/item/key/lasso
name = "bone lasso"
desc = "Perfect for taming all kinds of supernatural beasts! (Warning: only perfect for taming one kind of supernatural beast.)"
force = 12
icon_state = "lasso"
item_state = "chain"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
hitsound = 'sound/weapons/whip.ogg'
slot_flags = ITEM_SLOT_BELT
Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 72 KiB