mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
[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:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user