mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
even more work
This commit is contained in:
@@ -14,9 +14,16 @@
|
||||
/mob/living/simple_animal/hostile/poison/bees/bee_friendly()
|
||||
return 1
|
||||
|
||||
/mob/living/simple_animal/bot/bee_friendly()
|
||||
if(paicard)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/mob/living/simple_animal/diona/bee_friendly()
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/bee_friendly()
|
||||
if(dna && dna.species && dna.species.id == "pod") //bees pollinate plants, duh.
|
||||
if(get_species() == "Diona") //bees pollinate plants, duh.
|
||||
return 1
|
||||
if((wear_suit && (wear_suit.flags & THICKMATERIAL)) && (head && (head.flags & THICKMATERIAL)))
|
||||
return 1
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
update_genes()
|
||||
update_icon()
|
||||
else
|
||||
var/obj/item/I = usr.get_active_held_item()
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/seeds))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
@@ -251,7 +251,7 @@
|
||||
disk = null
|
||||
update_genes()
|
||||
else
|
||||
var/obj/item/I = usr.get_active_held_item()
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if(istype(I, /obj/item/weapon/disk/plantgene))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
@@ -383,7 +383,7 @@
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/pen))
|
||||
var/t = stripped_input(user, "What would you like the label to be?", name, null)
|
||||
if(user.get_active_held_item() != W)
|
||||
if(user.get_active_hand() != W)
|
||||
return
|
||||
if(!in_range(src, user) && loc != user)
|
||||
return
|
||||
|
||||
@@ -74,3 +74,13 @@
|
||||
origin_tech = "biotech=6;materials=5"
|
||||
light_range = 3
|
||||
seed = /obj/item/seeds/ambrosia/gaia
|
||||
|
||||
// Ambrosia Cruciatus
|
||||
/obj/item/seeds/ambrosia/cruciatus
|
||||
product = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/cruciatus
|
||||
potency = 10
|
||||
mutatelist = list()
|
||||
reagents_add = list("thc" = 0.15, "silver_sulfadiazine" = 0.15, "styptic_powder" = 0.1, "bath salts" = 0.20, "plantmatter" = 0.05)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/cruciatus
|
||||
seed = /obj/item/seeds/ambrosia/cruciatus
|
||||
@@ -25,7 +25,7 @@
|
||||
bitesize = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is aiming the [src.name] at themself! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1)
|
||||
sleep(25)
|
||||
if(!user)
|
||||
@@ -49,7 +49,7 @@
|
||||
throw_range = 7
|
||||
|
||||
/obj/item/weapon/grown/bananapeel/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is deliberately slipping on the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/meatwheat/attack_self(mob/living/user)
|
||||
user.visible_message("<span class='notice'>[user] crushes [src] into meat.</span>", "<span class='notice'>You crush [src] into something that resembles meat.</span>")
|
||||
playsound(user, 'sound/effects/blobattack.ogg', 50, 1)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatwheat/M = new(get_turf(user))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/meat/meatwheat/M = new(get_turf(user))
|
||||
user.drop_item()
|
||||
qdel(src)
|
||||
user.put_in_hands(M)
|
||||
|
||||
@@ -74,22 +74,4 @@
|
||||
var/mob/held_mob
|
||||
filling_color = "#F8F8FF"
|
||||
bitesize_mod = 4
|
||||
origin_tech = "biotech=4;magnets=5"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
held_mob = loc
|
||||
processing_objects.Add(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/process()
|
||||
if(held_mob && loc == held_mob)
|
||||
if(held_mob.is_holding(src))
|
||||
if(hasvar(held_mob,"gloves") && held_mob:gloves)
|
||||
return
|
||||
held_mob.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(prob(10))
|
||||
to_chat(held_mob, "<span class='warning'>Your hand holding [src] burns!</span>")
|
||||
else
|
||||
held_mob = null
|
||||
..()
|
||||
origin_tech = "biotech=4;magnets=5"
|
||||
@@ -43,10 +43,8 @@
|
||||
GT = new stacktype(user.loc)
|
||||
GT.amount = grassAmt
|
||||
for(var/obj/item/stack/tile/T in user.loc)
|
||||
if((T.type == stacktype) && (T.amount < T.max_amount))
|
||||
GT.merge(T)
|
||||
if(GT.amount <= 0)
|
||||
break
|
||||
if((T.type == stacktype) && (T.amount < T.max_amount) && (T != GT))
|
||||
T.attackby(GT, user)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
return S
|
||||
|
||||
/obj/item/seeds/kudzu/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] swallows the pack of kudzu seeds! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] swallows the pack of kudzu seeds! It looks like \he's trying to commit suicide..</span>")
|
||||
plant(user)
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
@@ -44,24 +44,26 @@
|
||||
attack_verb = list("stung")
|
||||
|
||||
/obj/item/weapon/grown/nettle/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is eating some of [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (BRUTELOSS|TOXLOSS)
|
||||
|
||||
/obj/item/weapon/grown/nettle/pickup(mob/living/user)
|
||||
..()
|
||||
if(!iscarbon(user))
|
||||
if(!ishuman(user))
|
||||
return 0
|
||||
var/mob/living/carbon/C = user
|
||||
if(C.gloves)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.gloves)
|
||||
return 0
|
||||
var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm"
|
||||
var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone)
|
||||
var/organ = ((H.hand ? "l_":"r_") + "arm")
|
||||
var/obj/item/organ/external/affecting = H.get_organ(organ)
|
||||
if(affecting)
|
||||
if(affecting.receive_damage(0, force))
|
||||
C.update_damage_overlays()
|
||||
to_chat(C, "<span class='userdanger'>The nettle burns your bare hand!</span>")
|
||||
if(affecting.take_damage(0, force))
|
||||
H.UpdateDamageIcon()
|
||||
to_chat(H, "<span class='userdanger'>The nettle burns your bare hand!</span>")
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/grown/nettle/afterattack(atom/A as mob|obj, mob/user,proximity)
|
||||
if(!proximity) return
|
||||
if(force > 0)
|
||||
@@ -104,7 +106,7 @@
|
||||
to_chat(M, "<span class='danger'>You are stunned by the powerful acid of the Deathnettle!</span>")
|
||||
add_logs(user, M, "attacked", src)
|
||||
|
||||
M.adjust_blurriness(force/7)
|
||||
M.AdjustEyeBlurry(force/7)
|
||||
if(prob(20))
|
||||
M.Paralyse(force / 6)
|
||||
M.Weaken(force / 15)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon_state = "seed-replicapod"
|
||||
species = "replicapod"
|
||||
plantname = "Replica Pod"
|
||||
product = /mob/living/carbon/human //verrry special -- Urist
|
||||
product = /mob/living/carbon/human/diona //verrry special -- Urist
|
||||
lifespan = 50
|
||||
endurance = 8
|
||||
maturation = 10
|
||||
@@ -35,12 +35,12 @@
|
||||
features = bloodSample.data["features"]
|
||||
factions = bloodSample.data["factions"]
|
||||
W.reagents.clear_reagents()
|
||||
user << "<span class='notice'>You inject the contents of the syringe into the seeds.</span>"
|
||||
to_chat(user, "<span class='notice'>You inject the contents of the syringe into the seeds.</span>")
|
||||
contains_sample = 1
|
||||
else
|
||||
user << "<span class='warning'>The seeds reject the sample!</span>"
|
||||
to_chat(user, "<span class='warning'>The seeds reject the sample!</span>")
|
||||
else
|
||||
user << "<span class='warning'>The seeds already contain a genetic sample!</span>"
|
||||
to_chat(user, "<span class='warning'>The seeds already contain a genetic sample!</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -66,30 +66,22 @@
|
||||
else
|
||||
if(M.ckey == ckey && M.stat == DEAD && !M.suiciding)
|
||||
make_podman = 1
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
make_podman = !L.hellbound
|
||||
break
|
||||
else //If the player has ghosted from his corpse before blood was drawn, his ckey is no longer attached to the mob, so we need to match up the cloned player through the mind key
|
||||
for(var/mob/M in player_list)
|
||||
if(mind && M.mind && ckey(M.mind.key) == ckey(mind.key) && M.ckey && M.client && M.stat == 2 && !M.suiciding)
|
||||
if(mind && M.mind && ckey(M.mind.key) == ckey(mind.key) && M.ckey && M.client && M.stat == DEAD && !M.suiciding)
|
||||
if(isobserver(M))
|
||||
var/mob/dead/observer/O = M
|
||||
if(!O.can_reenter_corpse)
|
||||
break
|
||||
make_podman = 1
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
make_podman = !L.hellbound
|
||||
ckey_holder = M.ckey
|
||||
break
|
||||
|
||||
if(make_podman) //all conditions met!
|
||||
var/mob/living/carbon/human/podman = new /mob/living/carbon/human(parent.loc)
|
||||
var/mob/living/carbon/human/diona/podman = new /mob/living/carbon/human/diona(parent.loc)
|
||||
if(realName)
|
||||
podman.real_name = realName
|
||||
else
|
||||
podman.real_name = "Pod Person [rand(0,999)]"
|
||||
mind.transfer_to(podman)
|
||||
if(ckey)
|
||||
podman.ckey = ckey
|
||||
@@ -97,10 +89,6 @@
|
||||
podman.ckey = ckey_holder
|
||||
podman.gender = blood_gender
|
||||
podman.faction |= factions
|
||||
if(!features["mcolor"])
|
||||
features["mcolor"] = "#59CE00"
|
||||
podman.hardset_dna(null,null,podman.real_name,blood_type,/datum/species/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman
|
||||
podman.set_cloned_appearance()
|
||||
|
||||
else //else, one packet of seeds. maybe two
|
||||
var/seed_count = 1
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
|
||||
/obj/item/weapon/grown/log/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(W.sharpness)
|
||||
if(is_sharp(W))
|
||||
user.show_message("<span class='notice'>You make [plank_name] out of \the [src]!</span>", 1)
|
||||
var/obj/item/stack/plank = new plank_type(user.loc, 1 + round(seed.potency / 25))
|
||||
var/old_plank_amount = plank.amount
|
||||
|
||||
@@ -58,7 +58,4 @@
|
||||
if(!..()) //was it caught by a mob?
|
||||
if(seed)
|
||||
for(var/datum/plant_gene/trait/T in seed.genes)
|
||||
T.on_throw_impact(src, hit_atom)
|
||||
|
||||
/obj/item/weapon/grown/microwave_act(obj/machine/microwave/M)
|
||||
return
|
||||
T.on_throw_impact(src, hit_atom)
|
||||
@@ -33,7 +33,7 @@
|
||||
reagents.add_reagent("weedkiller", 100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/weedspray/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is huffing the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (TOXLOSS)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/pestspray // -- Skie
|
||||
@@ -55,7 +55,7 @@
|
||||
reagents.add_reagent("pestkiller", 100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/pestspray/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is huffing the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (TOXLOSS)
|
||||
|
||||
/obj/item/weapon/cultivator
|
||||
@@ -92,10 +92,17 @@
|
||||
edge = 1
|
||||
|
||||
/obj/item/weapon/hatchet/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is chopping at \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/hatchet/unathiknife
|
||||
name = "duelling knife"
|
||||
desc = "A length of leather-bound wood studded with razor-sharp teeth. How crude."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "unathiknife"
|
||||
attack_verb = list("ripped", "torn", "cut")
|
||||
|
||||
/obj/item/weapon/scythe
|
||||
icon_state = "scythe0"
|
||||
name = "scythe"
|
||||
@@ -113,13 +120,13 @@
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/item/weapon/scythe/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
var/obj/item/bodypart/BP = C.get_bodypart("head")
|
||||
if(BP)
|
||||
BP.drop_limb()
|
||||
playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
|
||||
user.visible_message("<span class='suicide'>[user] is beheading \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/external/affecting = H.get_organ("head")
|
||||
if(affecting)
|
||||
affecting.droplimb(1, DROPLIMB_EDGE)
|
||||
playsound(loc, pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg'), 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
// *************************************
|
||||
|
||||
@@ -313,10 +313,10 @@
|
||||
|
||||
/datum/plant_gene/trait/noreact/on_new(obj/item/weapon/reagent_containers/food/snacks/grown/G, newloc)
|
||||
..()
|
||||
G.reagents.set_reacting(FALSE)
|
||||
G.flags |= NOREACT
|
||||
|
||||
/datum/plant_gene/trait/noreact/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target)
|
||||
G.reagents.set_reacting(TRUE)
|
||||
G.flags &= ~NOREACT
|
||||
G.reagents.handle_reactions()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user