mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-15 20:52:07 +00:00
tinytweaks (#6206)
* tinytweaks * 5 != 2 * smfix * requested changes + fixes exploit from 6212 * it compiled and worked anyway but go off i guess travis * requested changes
This commit is contained in:
committed by
Anewbe
parent
6a86783e32
commit
0d51ea81d5
@@ -6,7 +6,8 @@ var/datum/category_collection/autolathe/autolathe_recipes
|
||||
if(I.matter && !resources)
|
||||
resources = list()
|
||||
for(var/material in I.matter)
|
||||
resources[material] = I.matter[material]*1.25 // More expensive to produce than they are to recycle.
|
||||
var/coeff = (no_scale ? 1 : 1.25) //most objects are more expensive to produce than to recycle
|
||||
resources[material] = I.matter[material]*coeff // but if it's a sheet or RCD cartridge, it's 1:1
|
||||
if(is_stack && istype(I, /obj/item/stack))
|
||||
var/obj/item/stack/IS = I
|
||||
max_stack = IS.max_amount
|
||||
@@ -66,6 +67,7 @@ var/datum/category_collection/autolathe/autolathe_recipes
|
||||
var/power_use = 0
|
||||
var/is_stack
|
||||
var/max_stack
|
||||
var/no_scale
|
||||
|
||||
/datum/category_item/autolathe/dd_SortValue()
|
||||
return name
|
||||
@@ -93,6 +93,7 @@
|
||||
/datum/category_item/autolathe/engineering/rcd_ammo
|
||||
name = "matter cartridge"
|
||||
path =/obj/item/weapon/rcd_ammo
|
||||
no_scale = TRUE //prevents material duplication exploits
|
||||
|
||||
/datum/category_item/autolathe/engineering/rcd
|
||||
name = "rapid construction device"
|
||||
|
||||
@@ -73,22 +73,26 @@
|
||||
/datum/category_item/autolathe/general/metal
|
||||
name = "steel sheets"
|
||||
path =/obj/item/stack/material/steel
|
||||
is_stack = 1
|
||||
is_stack = TRUE
|
||||
no_scale = TRUE //prevents material duplication exploits
|
||||
|
||||
/datum/category_item/autolathe/general/glass
|
||||
name = "glass sheets"
|
||||
path =/obj/item/stack/material/glass
|
||||
is_stack = 1
|
||||
is_stack = TRUE
|
||||
no_scale = TRUE //prevents material duplication exploits
|
||||
|
||||
/datum/category_item/autolathe/general/rglass
|
||||
name = "reinforced glass sheets"
|
||||
path =/obj/item/stack/material/glass/reinforced
|
||||
is_stack = 1
|
||||
is_stack = TRUE
|
||||
no_scale = TRUE //prevents material duplication exploits
|
||||
|
||||
/datum/category_item/autolathe/general/rods
|
||||
name = "metal rods"
|
||||
path =/obj/item/stack/rods
|
||||
is_stack = 1
|
||||
is_stack = TRUE
|
||||
no_scale = TRUE //prevents material duplication exploits
|
||||
|
||||
/datum/category_item/autolathe/general/knife
|
||||
name = "kitchen knife"
|
||||
|
||||
@@ -83,16 +83,17 @@
|
||||
else
|
||||
//Make sure it's buildable and list requires resources.
|
||||
for(var/material in R.resources)
|
||||
var/sheets = round(stored_material[material]/round(R.resources[material]*mat_efficiency))
|
||||
var/coeff = (R.no_scale ? 1 : mat_efficiency) //stacks are unaffected by production coefficient
|
||||
var/sheets = round(stored_material[material]/round(R.resources[material]*coeff))
|
||||
if(isnull(max_sheets) || max_sheets > sheets)
|
||||
max_sheets = sheets
|
||||
if(!isnull(stored_material[material]) && stored_material[material] < round(R.resources[material]*mat_efficiency))
|
||||
if(!isnull(stored_material[material]) && stored_material[material] < round(R.resources[material]*coeff))
|
||||
can_make = 0
|
||||
if(!comma)
|
||||
comma = 1
|
||||
else
|
||||
material_string += ", "
|
||||
material_string += "[round(R.resources[material] * mat_efficiency)] [material]"
|
||||
material_string += "[round(R.resources[material] * coeff)] [material]"
|
||||
material_string += ".<br></td>"
|
||||
//Build list of multipliers for sheets.
|
||||
if(R.is_stack)
|
||||
@@ -251,15 +252,16 @@
|
||||
update_use_power(2)
|
||||
|
||||
//Check if we still have the materials.
|
||||
var/coeff = (making.no_scale ? 1 : mat_efficiency) //stacks are unaffected by production coefficient
|
||||
for(var/material in making.resources)
|
||||
if(!isnull(stored_material[material]))
|
||||
if(stored_material[material] < round(making.resources[material] * mat_efficiency) * multiplier)
|
||||
if(stored_material[material] < round(making.resources[material] * coeff) * multiplier)
|
||||
return
|
||||
|
||||
//Consume materials.
|
||||
for(var/material in making.resources)
|
||||
if(!isnull(stored_material[material]))
|
||||
stored_material[material] = max(0, stored_material[material] - round(making.resources[material] * mat_efficiency) * multiplier)
|
||||
stored_material[material] = max(0, stored_material[material] - round(making.resources[material] * coeff) * multiplier)
|
||||
|
||||
update_icon() // So lid closes
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
if(!opened)
|
||||
icon_state = icon_closed
|
||||
if(sealed)
|
||||
overlays += "sealed"
|
||||
overlays += "welded"
|
||||
else
|
||||
icon_state = icon_opened
|
||||
|
||||
|
||||
@@ -298,6 +298,14 @@
|
||||
/obj/structure/flora/sif
|
||||
icon = 'icons/obj/flora/sifflora.dmi'
|
||||
|
||||
/obj/structure/flora/sif/attack_hand(mob/user)
|
||||
if (user.a_intent == I_HURT)
|
||||
if(do_after(user, 5 SECONDS))
|
||||
user.visible_message("\The [user] digs up \the [src.name].", "You dig up \the [src.name].")
|
||||
qdel(src)
|
||||
else
|
||||
user.visible_message("\The [user] pokes \the [src.name].", "You poke \the [src.name].")
|
||||
|
||||
/datum/category_item/catalogue/flora/subterranean_bulbs
|
||||
name = "Sivian Flora - Subterranean Bulbs"
|
||||
desc = "A plant which is native to Sif, it continues the trend of being a bioluminescent specimen. These plants \
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
set_flooring(get_flooring_data(floortype))
|
||||
else
|
||||
footstep_sounds = base_footstep_sounds
|
||||
if(can_dirty)
|
||||
if(prob(2))
|
||||
new /obj/effect/decal/cleanable/dirt(src) //5% chance to start with dirt on a floor tile- give the janitor something to do
|
||||
|
||||
/turf/simulated/floor/proc/set_flooring(var/decl/flooring/newflooring)
|
||||
make_plating(defer_icon_update = 1)
|
||||
|
||||
@@ -29,7 +29,7 @@ var/list/grass_types = list(
|
||||
name = "growth"
|
||||
icon_state = "grass_sif"
|
||||
edge_blending_priority = 4
|
||||
grass_chance = 0
|
||||
grass_chance = 5
|
||||
var/tree_chance = 2
|
||||
|
||||
grass_types = list(
|
||||
|
||||
@@ -6,6 +6,7 @@ var/list/blob_cores = list()
|
||||
icon = 'icons/mob/blob.dmi'
|
||||
icon_state = "blank_blob"
|
||||
desc = "A huge, pulsating yellow mass."
|
||||
density = TRUE //bandaid fix for PolarisSS13/6173
|
||||
max_integrity = 150
|
||||
point_return = -1
|
||||
health_regen = 0 //we regen in Life() instead of when pulsed
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
intelligence_level = SA_ANIMAL
|
||||
icon_state = "cat2"
|
||||
item_state = "cat2"
|
||||
icon_living = "cat2"
|
||||
icon_dead = "cat2_dead"
|
||||
icon_rest = "cat2_rest"
|
||||
icon_living = "[initial(icon_state)]"
|
||||
icon_dead = "[initial(icon_state)]_dead"
|
||||
icon_rest = "[initial(icon_state)]_rest"
|
||||
|
||||
investigates = 1
|
||||
specific_targets = 1 //Only targets with Found()
|
||||
@@ -161,9 +161,6 @@
|
||||
gender = FEMALE
|
||||
icon_state = "cat"
|
||||
item_state = "cat"
|
||||
icon_living = "cat"
|
||||
icon_dead = "cat_dead"
|
||||
icon_rest = "cat_rest"
|
||||
befriend_job = "Chief Medical Officer"
|
||||
|
||||
/mob/living/simple_animal/cat/kitten
|
||||
@@ -188,9 +185,6 @@
|
||||
gender = MALE
|
||||
icon_state = "cat3"
|
||||
item_state = "cat3"
|
||||
icon_living = "cat3"
|
||||
icon_dead = "cat3_dead"
|
||||
icon_rest = "cat3_rest"
|
||||
holder_type = /obj/item/weapon/holder/cat/fluff/bones
|
||||
friend_name = "Erstatz Vryroxes"
|
||||
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
tt_desc = "E Felis silvestris catus"
|
||||
icon_state = "cat2"
|
||||
item_state = "cat2"
|
||||
icon_living = "cat2"
|
||||
icon_dead = "cat2_dead"
|
||||
icon_rest = "cat2_rest"
|
||||
|
||||
movement_cooldown = 0.5 SECONDS
|
||||
|
||||
@@ -21,6 +18,14 @@
|
||||
has_langs = list("Cat")
|
||||
|
||||
var/mob/living/friend = null // Our best pal, who we'll follow. Meow.
|
||||
var/named = FALSE //have I been named yet?
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/Initialize()
|
||||
icon_living = "[initial(icon_state)]"
|
||||
icon_dead = "[initial(icon_state)]_dead"
|
||||
icon_rest = "[initial(icon_state)]_rest"
|
||||
update_icon()
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/handle_special()
|
||||
if(!stat && prob(2)) // spooky
|
||||
@@ -90,17 +95,13 @@
|
||||
gender = FEMALE
|
||||
icon_state = "cat"
|
||||
item_state = "cat"
|
||||
icon_living = "cat"
|
||||
icon_dead = "cat_dead"
|
||||
icon_rest = "cat_rest"
|
||||
named = TRUE
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/kitten
|
||||
name = "kitten"
|
||||
desc = "D'aaawwww"
|
||||
desc = "D'aaawwww!"
|
||||
icon_state = "kitten"
|
||||
item_state = "kitten"
|
||||
icon_living = "kitten"
|
||||
icon_dead = "kitten_dead"
|
||||
gender = NEUTER
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/kitten/Initialize()
|
||||
@@ -108,6 +109,10 @@
|
||||
gender = pick(MALE, FEMALE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/black
|
||||
icon_state = "cat"
|
||||
item_state = "cat"
|
||||
|
||||
// Leaving this here for now.
|
||||
/obj/item/weapon/holder/cat/fluff/bones
|
||||
name = "Bones"
|
||||
@@ -121,12 +126,9 @@
|
||||
gender = MALE
|
||||
icon_state = "cat3"
|
||||
item_state = "cat3"
|
||||
icon_living = "cat3"
|
||||
icon_dead = "cat3_dead"
|
||||
icon_rest = "cat3_rest"
|
||||
named = TRUE
|
||||
holder_type = /obj/item/weapon/holder/cat/fluff/bones
|
||||
|
||||
|
||||
/datum/say_list/cat
|
||||
speak = list("Meow!","Esp!","Purr!","HSSSSS")
|
||||
emote_hear = list("meows","mews")
|
||||
@@ -134,3 +136,34 @@
|
||||
say_maybe_target = list("Meow?","Mew?","Mao?")
|
||||
say_got_target = list("MEOW!","HSSSS!","REEER!")
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen))
|
||||
if(named)
|
||||
to_chat(user, "<span class='notice'>\the [name] already has a name!</span>")
|
||||
else
|
||||
var/tmp_name = sanitizeSafe(input(user, "Give \the [name] a name", "Name"), MAX_NAME_LEN)
|
||||
if(length(tmp_name) > 50)
|
||||
to_chat(user, "<span class='notice'>The name can be at most 50 characters long.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You name \the [name]. Meow!</span>")
|
||||
name = tmp_name
|
||||
named = TRUE
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/cat_box
|
||||
name = "faintly purring box"
|
||||
desc = "This box is purring faintly. You're pretty sure there's a cat inside it."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "box"
|
||||
var/cattype = /mob/living/simple_mob/animal/passive/cat
|
||||
|
||||
/obj/item/weapon/cat_box/attack_self(var/mob/user)
|
||||
var/turf/catturf = get_turf(src)
|
||||
to_chat(user, "<span class='notice'>You peek into \the [name]-- and a cat jumps out!</span>")
|
||||
new cattype(catturf)
|
||||
new /obj/item/stack/material/cardboard(catturf) //if i fits i sits
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/cat_box/black
|
||||
cattype = /mob/living/simple_mob/animal/passive/cat/black
|
||||
@@ -99,6 +99,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/supermatter/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
QDEL_NULL(soundloop)
|
||||
return ..()
|
||||
|
||||
@@ -150,6 +151,8 @@
|
||||
H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
|
||||
spawn(pull_time)
|
||||
explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
|
||||
spawn(5) //to allow the explosion to finish
|
||||
new /obj/item/broken_sm(TS)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -452,3 +455,21 @@
|
||||
|
||||
/obj/machinery/power/supermatter/shard/announce_warning() //Shards don't get announcements
|
||||
return
|
||||
|
||||
/obj/item/broken_sm
|
||||
name = "shattered supermatter plinth"
|
||||
desc = "The shattered remains of a supermatter shard plinth. It doesn't look safe to be around."
|
||||
icon = 'icons/obj/engine.dmi'
|
||||
icon_state = "darkmatter_broken"
|
||||
|
||||
/obj/item/broken_sm/New()
|
||||
message_admins("Broken SM shard created at ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
START_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/broken_sm/process()
|
||||
radiation_repository.radiate(src, 50)
|
||||
|
||||
/obj/item/broken_sm/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
42
html/changelogs/mistyLuminescence - tinytweaks.yml
Normal file
42
html/changelogs/mistyLuminescence - tinytweaks.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: mistyLuminescence
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- tweak: "When the supermatter explodes, it now leaves behind a shattered plinth that continues to emit radiation. You should probably get rid of it."
|
||||
- bugfix: "If you destroy the supermatter early (e.g. through admin deletion shenanigans), it no longer irradiates everyone forever."
|
||||
- bugfix: "Welding lockers now actually updates their sprite properly."
|
||||
- tweak: "Every floor tile now has a minor (2%) chance to spawn with some dirt on it. The Janitor now has a job again."
|
||||
- tweak: "Similarly, every Sif grass tile now has a minor (5%) chance to spawn with some fancy eyebulb grass on it. It can be removed by clicking on it with harm intent."
|
||||
- rscadd: "Adds cats-in-boxes, which can be activated (once) to spawn cats. There's an orange tabby (Cargo cats) and a tuxedo (Runtime) version."
|
||||
- bugfix: "Fixes a material duplication exploit."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 251 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Reference in New Issue
Block a user