Ports /vg/'s Nas-Sie remake.
First phase: Port cultify procs.
@@ -271,6 +271,9 @@
|
||||
#include "code\game\gamemodes\cult\ritual.dm"
|
||||
#include "code\game\gamemodes\cult\runes.dm"
|
||||
#include "code\game\gamemodes\cult\talisman.dm"
|
||||
#include "code\game\gamemodes\cult\cultify\mob.dm"
|
||||
#include "code\game\gamemodes\cult\cultify\obj.dm"
|
||||
#include "code\game\gamemodes\cult\cultify\turf.dm"
|
||||
#include "code\game\gamemodes\events\black_hole.dm"
|
||||
#include "code\game\gamemodes\events\clang.dm"
|
||||
#include "code\game\gamemodes\events\dust.dm"
|
||||
|
||||
@@ -319,6 +319,3 @@ var/global/ManifestJSON
|
||||
|
||||
/obj/effect/spawner
|
||||
name = "object spawner"
|
||||
|
||||
/obj/proc/cultify()
|
||||
qdel(src)
|
||||
|
||||
@@ -29,6 +29,7 @@ var/datum/antagonist/cultist/cult
|
||||
var/list/startwords = list("blood","join","self","hell")
|
||||
var/list/allwords = list("travel","self","see","hell","blood","join","tech","destroy", "other", "hide")
|
||||
var/list/sacrificed = list()
|
||||
var/list/harvested = list()
|
||||
|
||||
/datum/antagonist/cultist/New()
|
||||
..()
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
throwforce = 10
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
/obj/item/weapon/melee/cultblade/cultify()
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/cultblade/attack(mob/living/target as mob, mob/living/carbon/human/user as mob)
|
||||
if(iscultist(user))
|
||||
@@ -40,15 +42,22 @@
|
||||
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/clothing/head/culthood/cultify()
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/culthood/magus
|
||||
name = "magus helm"
|
||||
icon_state = "magus"
|
||||
item_state = "magus"
|
||||
desc = "A helm worn by the followers of Nar-Sie."
|
||||
flags_inv = HIDEFACE
|
||||
flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR
|
||||
body_parts_covered = HEAD|FACE|EYES
|
||||
|
||||
/obj/item/clothing/head/culthood/alt
|
||||
icon_state = "cult_hoodalt"
|
||||
item_state = "cult_hoodalt"
|
||||
|
||||
/obj/item/clothing/suit/cultrobes/alt
|
||||
icon_state = "cultrobesalt"
|
||||
item_state = "cultrobesalt"
|
||||
|
||||
/obj/item/clothing/suit/cultrobes
|
||||
name = "cult robes"
|
||||
desc = "A set of armored robes worn by the followers of Nar-Sie"
|
||||
@@ -60,27 +69,20 @@
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/clothing/head/magus
|
||||
name = "magus helm"
|
||||
icon_state = "magus"
|
||||
item_state = "magus"
|
||||
desc = "A helm worn by the followers of Nar-Sie."
|
||||
flags_inv = HIDEFACE
|
||||
flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR
|
||||
body_parts_covered = HEAD|FACE|EYES
|
||||
armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0
|
||||
/obj/item/clothing/suit/cultrobes/cultify()
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/magusred
|
||||
/obj/item/clothing/suit/cultrobes/alt
|
||||
icon_state = "cultrobesalt"
|
||||
item_state = "cultrobesalt"
|
||||
|
||||
/obj/item/clothing/suit/cultrobes/magusred
|
||||
name = "magus robes"
|
||||
desc = "A set of armored robes worn by the followers of Nar-Sie"
|
||||
icon_state = "magusred"
|
||||
item_state = "magusred"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/weapon/book/tome,/obj/item/weapon/melee/cultblade)
|
||||
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/space/cult
|
||||
name = "cult helmet"
|
||||
@@ -90,6 +92,8 @@
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/space/cult/cultify()
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/space/cult
|
||||
name = "cult armour"
|
||||
@@ -101,4 +105,7 @@
|
||||
slowdown = 1
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
siemens_coefficient = 0
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
|
||||
|
||||
/obj/item/clothing/suit/space/cult/cultify()
|
||||
return
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
anchored = 1
|
||||
icon = 'icons/obj/cult.dmi'
|
||||
|
||||
/obj/structure/cult/cultify()
|
||||
return
|
||||
|
||||
/obj/structure/cult/talisman
|
||||
name = "Altar"
|
||||
desc = "A bloodstained altar dedicated to Nar-Sie"
|
||||
@@ -98,4 +101,4 @@
|
||||
/obj/effect/gateway/Crossed(AM as mob|obj)
|
||||
spawn(0)
|
||||
return
|
||||
return
|
||||
return
|
||||
|
||||
28
code/game/gamemodes/cult/cultify/mob.dm
Normal file
@@ -0,0 +1,28 @@
|
||||
/mob/proc/cultify()
|
||||
return
|
||||
|
||||
/mob/dead/cultify()
|
||||
if(icon_state != "ghost-narsie")
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "ghost-narsie"
|
||||
overlays = 0
|
||||
invisibility = 0
|
||||
src << "<span class='sinister'>Even as a non-corporal being, you can feel Nar-Sie's presence altering you. You are now visible to everyone.</span>"
|
||||
|
||||
/mob/living/cultify()
|
||||
if(iscultist(src) && client)
|
||||
var/mob/living/simple_animal/construct/harvester/C = new(get_turf(src))
|
||||
mind.transfer_to(C)
|
||||
C << "<span class='sinister'>The Geometer of Blood is overjoyed to be reunited with its followers, and accepts your body in sacrifice. As reward, you have been gifted with the shell of an Harvester.<br>Your tendrils can use and draw runes without need for a tome, your eyes can see beings through walls, and your mind can open any door. Use these assets to serve Nar-Sie and bring him any remaining living human in the world.<br>You can teleport yourself back to Nar-Sie along with any being under yourself at any time using your \"Harvest\" spell.</span>"
|
||||
dust()
|
||||
else if(client)
|
||||
var/mob/dead/G = (ghostize())
|
||||
G.icon = 'icons/mob/mob.dmi'
|
||||
G.icon_state = "ghost-narsie"
|
||||
G.overlays = 0
|
||||
G.invisibility = 0
|
||||
G << "<span class='sinister'>You feel relieved as what's left of your soul finally escapes its prison of flesh.</span>"
|
||||
|
||||
cult.harvested += G.mind
|
||||
else
|
||||
dust()
|
||||
145
code/game/gamemodes/cult/cultify/obj.dm
Normal file
@@ -0,0 +1,145 @@
|
||||
/obj/proc/cultify()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/cultify()
|
||||
return
|
||||
|
||||
/obj/effect/decal/remains/cultify()
|
||||
return
|
||||
|
||||
/obj/effect/overlay/cultify()
|
||||
return
|
||||
|
||||
/obj/item/device/flashlight/lamp/cultify()
|
||||
new /obj/structure/cult/pylon(loc)
|
||||
..()
|
||||
|
||||
/obj/item/stack/sheet/wood/cultify()
|
||||
return
|
||||
|
||||
/obj/item/weapon/book/cultify()
|
||||
new /obj/item/weapon/book/tome(loc)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/claymore/cultify()
|
||||
new /obj/item/weapon/melee/cultblade(loc)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/cultify()
|
||||
new /obj/item/weapon/storage/backpack/cultpack(loc)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/cultpack/cultify()
|
||||
return
|
||||
|
||||
/obj/item/weapon/table_parts/cultify()
|
||||
new /obj/item/weapon/table_parts/wood(loc)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/table_parts/wood/cultify()
|
||||
return
|
||||
|
||||
/obj/machinery/cultify()
|
||||
// We keep the number of cultified machines down by only converting those that are dense
|
||||
// The alternative is to keep a separate file of exceptions.
|
||||
if(density)
|
||||
var/list/random_structure = list(
|
||||
/obj/structure/cult/talisman,
|
||||
/obj/structure/cult/forge,
|
||||
/obj/structure/cult/tome
|
||||
)
|
||||
var/I = pick(random_structure)
|
||||
new I(loc)
|
||||
..()
|
||||
|
||||
/obj/machinery/power/apc/cultify()
|
||||
return
|
||||
|
||||
/obj/machinery/atmospherics/cultify()
|
||||
if(src.invisibility != INVISIBILITY_MAXIMUM)
|
||||
src.invisibility = INVISIBILITY_MAXIMUM
|
||||
|
||||
/obj/machinery/cooking/cultify()
|
||||
new /obj/structure/cult/talisman(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/computer/cultify()
|
||||
new /obj/structure/cult/tome(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/door/cultify()
|
||||
new /obj/structure/mineral_door/wood(loc)
|
||||
icon_state = "null"
|
||||
density = 0
|
||||
c_animation = new /atom/movable/overlay(src.loc)
|
||||
c_animation.name = "cultification"
|
||||
c_animation.density = 0
|
||||
c_animation.anchored = 1
|
||||
c_animation.icon = 'icons/effects/effects.dmi'
|
||||
c_animation.layer = 5
|
||||
c_animation.master = src.loc
|
||||
c_animation.icon_state = "breakdoor"
|
||||
flick("cultification",c_animation)
|
||||
spawn(10)
|
||||
del(c_animation)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/light/cultify()
|
||||
new /obj/structure/cult/pylon(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/vending/cultify()
|
||||
new /obj/structure/cult/forge(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/bed/chair/cultify()
|
||||
var/obj/structure/bed/chair/wood/wings/I = new(loc)
|
||||
I.dir = dir
|
||||
..()
|
||||
|
||||
/obj/structure/bed/chair/wood/cultify()
|
||||
return
|
||||
|
||||
/obj/structure/bookcase/cultify()
|
||||
return
|
||||
|
||||
/obj/structure/grille/cultify()
|
||||
new /obj/structure/grille/cult(get_turf(src))
|
||||
..()
|
||||
|
||||
/obj/structure/grille/cult/cultify()
|
||||
return
|
||||
|
||||
/obj/structure/mineral_door/cultify()
|
||||
new /obj/structure/mineral_door/wood(loc)
|
||||
..()
|
||||
|
||||
/obj/structure/mineral_door/wood/cultify()
|
||||
return
|
||||
|
||||
/obj/machinery/singularity/cultify()
|
||||
var/dist = max((current_size - 2), 1)
|
||||
explosion(get_turf(src), dist, dist * 2, dist * 4)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/shuttle/engine/heater/cultify()
|
||||
new /obj/structure/cult/pylon(loc)
|
||||
..()
|
||||
|
||||
/obj/structure/shuttle/engine/propulsion/cultify()
|
||||
var/turf/T = get_turf(src)
|
||||
if(T)
|
||||
T.ChangeTurf(/turf/simulated/wall/cult)
|
||||
..()
|
||||
|
||||
/obj/structure/stool/cultify()
|
||||
var/obj/structure/bed/chair/wood/wings/I = new(loc)
|
||||
I.dir = dir
|
||||
..()
|
||||
|
||||
/obj/structure/table/cultify()
|
||||
new /obj/structure/table/woodentable(loc)
|
||||
..()
|
||||
|
||||
/obj/structure/table/woodentable/cultify()
|
||||
return
|
||||
43
code/game/gamemodes/cult/cultify/turf.dm
Normal file
@@ -0,0 +1,43 @@
|
||||
/turf/proc/cultify()
|
||||
ChangeTurf(/turf/space)
|
||||
return
|
||||
|
||||
/turf/simulated/floor/cultify()
|
||||
cultify_floor()
|
||||
|
||||
/turf/simulated/floor/carpet/cultify()
|
||||
return
|
||||
|
||||
/turf/simulated/shuttle/floor/cultify()
|
||||
cultify_floor()
|
||||
|
||||
/turf/simulated/shuttle/floor4/cultify()
|
||||
cultify_floor()
|
||||
|
||||
/turf/simulated/shuttle/wall/cultify()
|
||||
cultify_wall()
|
||||
|
||||
/turf/simulated/wall/cultify()
|
||||
cultify_wall()
|
||||
|
||||
/turf/simulated/wall/cult/cultify()
|
||||
return
|
||||
|
||||
/turf/unsimulated/beach/cultify()
|
||||
return
|
||||
|
||||
/turf/unsimulated/floor/cultify()
|
||||
cultify_floor()
|
||||
|
||||
/turf/unsimulated/wall/cultify()
|
||||
cultify_wall()
|
||||
|
||||
/turf/proc/cultify_floor()
|
||||
if((icon_state != "cult")&&(icon_state != "cult-narsie"))
|
||||
name = "engraved floor"
|
||||
icon_state = "cult"
|
||||
turf_animation('icons/effects/effects.dmi',"cultfloor",0,0,MOB_LAYER-1)
|
||||
|
||||
/turf/proc/cultify_wall()
|
||||
ChangeTurf(/turf/unsimulated/wall/cult)
|
||||
turf_animation('icons/effects/effects.dmi',"cultwall",0,0,MOB_LAYER-1)
|
||||
@@ -498,6 +498,9 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
|
||||
else
|
||||
user << "The scriptures of Nar-Sie, The One Who Sees, The Geometer of Blood. Contains the details of every ritual his followers could think of. Most of these are useless, though."
|
||||
|
||||
/obj/item/weapon/book/tome/cultify()
|
||||
return
|
||||
|
||||
/obj/item/weapon/book/tome/imbued //admin tome, spawns working runes without waiting
|
||||
w_class = 2.0
|
||||
var/cultistsonly = 1
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
var/list/sacrificed = list()
|
||||
|
||||
/obj/effect/rune/cultify()
|
||||
return
|
||||
|
||||
/obj/effect/rune
|
||||
|
||||
/////////////////////////////////////////FIRST RUNE
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
dir = EAST
|
||||
var/width = 1
|
||||
|
||||
// turf animation
|
||||
var/atom/movable/overlay/c_animation = null
|
||||
|
||||
/obj/machinery/door/attack_generic(var/mob/user, var/damage)
|
||||
if(damage >= 10)
|
||||
visible_message("<span class='danger'>\The [user] smashes into the [src]!</span>")
|
||||
|
||||
@@ -146,7 +146,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
|
||||
new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \
|
||||
new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \
|
||||
new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts/wood, 2), \
|
||||
new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood/normal, 3, time = 10, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("crossbow frame", /obj/item/weapon/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0), \
|
||||
new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
icon = 'icons/obj/barsigns.dmi'
|
||||
icon_state = "empty"
|
||||
anchored = 1
|
||||
var/cult = 0
|
||||
New()
|
||||
ChangeSign(pick("pinkflamingo", "magmasea", "limbo", "rustyaxe", "armokbar", "brokendrum", "meadbay", "thedamnwall", "thecavern", "cindikate", "theorchard", "thesaucyclown", "theclownshead", "whiskeyimplant", "carpecarp", "robustroadhouse", "greytide", "theredshirt"))
|
||||
return
|
||||
@@ -12,6 +13,9 @@
|
||||
return
|
||||
|
||||
/obj/structure/sign/double/barsign/attackby(obj/item/I, mob/user)
|
||||
if(cult)
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/card = I
|
||||
if(access_bar in card.GetAccess())
|
||||
|
||||
@@ -215,3 +215,16 @@
|
||||
health -= damage
|
||||
spawn(1) healthcheck()
|
||||
return 1
|
||||
|
||||
/obj/structure/grille/cult
|
||||
name = "cult grille"
|
||||
desc = "A matrice built out of an unknown material, with some sort of force field blocking air around it"
|
||||
icon_state = "grillecult"
|
||||
health = 40 //Make it strong enough to avoid people breaking in too easily
|
||||
|
||||
/obj/structure/grille/cult/CanPass(atom/movable/mover, turf/target, height = 1.5, air_group = 0)
|
||||
if(air_group)
|
||||
return 0 //Make sure air doesn't drain
|
||||
..()
|
||||
|
||||
|
||||
|
||||
@@ -67,15 +67,13 @@
|
||||
return
|
||||
|
||||
// Chair types
|
||||
/obj/structure/bed/chair/wood/normal
|
||||
/obj/structure/bed/chair/wood
|
||||
icon_state = "wooden_chair"
|
||||
name = "wooden chair"
|
||||
desc = "Old is never too old to not be in fashion."
|
||||
|
||||
/obj/structure/bed/chair/wood/wings
|
||||
icon_state = "wooden_chair_wings"
|
||||
name = "wooden chair"
|
||||
desc = "Old is never too old to not be in fashion."
|
||||
|
||||
/obj/structure/bed/chair/wood/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
|
||||
@@ -74,6 +74,8 @@
|
||||
name = "engraved floor"
|
||||
icon_state = "cult"
|
||||
|
||||
/turf/simulated/floor/engine/cult/cultify()
|
||||
return
|
||||
|
||||
/turf/simulated/floor/engine/n20
|
||||
New()
|
||||
|
||||
@@ -2,4 +2,7 @@
|
||||
name = "wall"
|
||||
desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick"
|
||||
icon_state = "cult"
|
||||
walltype = "cult"
|
||||
walltype = "cult"
|
||||
|
||||
/turf/unsimulated/wall/cult/cultify()
|
||||
return
|
||||
|
||||
@@ -107,6 +107,9 @@
|
||||
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/shoes/cult/cultify()
|
||||
return
|
||||
|
||||
/obj/item/clothing/shoes/cyborg
|
||||
name = "cyborg boots"
|
||||
desc = "Shoes for a cyborg costume"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
/mob/living/simple_animal/construct
|
||||
name = "Construct"
|
||||
real_name = "Construct"
|
||||
@@ -35,6 +34,9 @@
|
||||
|
||||
var/list/construct_spells = list()
|
||||
|
||||
/mob/living/simple_animal/construct/cultify()
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/construct/New()
|
||||
..()
|
||||
name = text("[initial(name)] ([rand(1, 1000)])")
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/obj/item/device/soulstone/cultify()
|
||||
return
|
||||
|
||||
/obj/item/device/soulstone
|
||||
name = "Soul Stone Shard"
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
@@ -9,7 +12,6 @@
|
||||
origin_tech = "bluespace=4;materials=4"
|
||||
var/imprinted = "empty"
|
||||
|
||||
|
||||
//////////////////////////////Capturing////////////////////////////////////////////////////////
|
||||
|
||||
attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
faction = "cult"
|
||||
status_flags = CANPUSH
|
||||
|
||||
/mob/living/simple_animal/shade/cultify()
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/shade/Life()
|
||||
..()
|
||||
OnDeathInLife()
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
//arcane clothing
|
||||
apply_prefix = 0
|
||||
var/list/possible_spawns = list(/obj/item/clothing/head/culthood,
|
||||
/obj/item/clothing/head/magus,
|
||||
/obj/item/clothing/head/culthood/magus,
|
||||
/obj/item/clothing/head/culthood/alt,
|
||||
/obj/item/clothing/head/helmet/space/cult)
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 195 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 310 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 143 KiB |