Files
Bubberstation/tools/ScrollAnimationAssembler/create_scroll.dm
Thunder12345 544b35d162 Galaxy Suitskirts + Scrolling Animation Icon Tool (#74183)
## About The Pull Request

Adds skirt variants of the lawyer's galaxy suits. Dyeing lawyer
suitskirts will now create galaxy suitskirts instead of normal galaxy
suits.


![blu](https://user-images.githubusercontent.com/5479091/227040864-d524560c-f364-4547-b212-7dbbc645b3b2.gif)


![redd](https://user-images.githubusercontent.com/5479091/227040871-69950d08-5a02-42a4-aeb8-d5d5d7b62c02.gif)

Bundled with the tooling I created to assemble these sprites, and the
input DMIs as examples. Tool only creates right to left scrolling, other
directions can be achieved by suitably rotating/flipping the inputs, and
then transforming the output back to the intended direction.

## Why It's Good For The Game

Allows skirt-wearers to participate in the sick ass suits, and prevents
skirts from magically turning into trousers. Tooling could prove useful
in future for other spriters who want to make scrolling animations.

## Changelog
🆑
add: Added skirt variants of the galaxy suits
/🆑
2023-03-24 12:09:55 -06:00

55 lines
1.5 KiB
Plaintext

/// Collect user input for the scroll and feed it to Assemble()
/mob/verb/Create_Scroll()
//Background to construct the scrolling image from
var/background_dmi = input("Pick background DMI:", "Icon") as null|icon
//Is background a DMI?
if(!(isfile(background_dmi) && (copytext("[background_dmi]",-4) == ".dmi")))
world << "\red Bad background DMI file '[background_dmi]'"
return
//Icon to apply the scrolling animation to
var/foreground_dmi = input("Pick foreground DMI:", "Icon") as null|icon
//Is foreground a DMI?
if(!(isfile(foreground_dmi) && (copytext("[foreground_dmi]",-4) == ".dmi")))
world << "\red Bad foreground DMI file '[foreground_dmi]'"
return
//Mask icon to define the area of the background to use
var/mask_dmi = input("Pick mask DMI:", "Icon") as null|icon
//Is mask a DMI?
if(!(isfile(mask_dmi) && (copytext("[mask_dmi]",-4) == ".dmi")))
world << "\red Bad mask DMI file '[mask_dmi]'"
return
//Number of frames
var/frames = input("Number of frames:", "Number") as null|num
//Is frames an int?
if(!isnum(frames))
world << "\red Bad frames number '[frames]'"
return
else
if(round(frames) != frames)
world << "\red Non-integer frames number '[frames]'"
return
//Duration of each frame
var/duration = input("Frame duration:", "Number") as null|num
//Is duration a number?
if(!isnum(duration))
world << "\red Bad frame duration '[duration]'"
return
//Inputs look good, proceed
Assemble(background_dmi, foreground_dmi, mask_dmi, frames, duration)