ItsVerday / LuckyAPI

A modloader for Luck be a Landlord
https://discord.gg/7ZncdvbXp7
MIT License
12 stars 7 forks source link

Multi-texture/state symbols (eg. dice, arrows) #10

Open ItsVerday opened 3 years ago

ItsVerday commented 3 years ago

Is your feature request related to a problem? Please describe. The modloader doesn't have support for multi-texture symbols.

Describe the solution you'd like Add support for symbols with multiple textures/states.

Describe alternatives you've considered N/A

Additional context Not sure about how this would be implemented yet.

runttekita commented 3 years ago

Am I misunderstanding the issue or doesn't the modloader already support this? Take for example

extends "res://modloader/ModSymbol.gd"

const RESOURCE_PATH = "res://dev_console/"
var fruit = true

func init(modloader: Reference, params):
    self.modloader = modloader

    self.id = "reina"
    self.value = 2
    self.values = [20]
    self.rarity = "very_rare"

    self.texture = load_texture(RESOURCE_PATH + "dragonfruit.png")
    self.extra_textures["goose"] = load_texture(RESOURCE_PATH + "golden_goose.png")
    self.extra_textures["fruit"] = load_texture(RESOURCE_PATH + "dragonfruit.png")
    self.name = "TEST_ICON_I_FORGOT_TO_REMOVE"
    self.description = "i messed up"

func add_conditional_effects(symbol, adjacent):
    if fruit:
        symbol.set_texture(extra_textures["goose"])
        fruit = false
    else:
        symbol.set_texture(extra_textures["fruit"])
        fruit = true

This symbol swaps between the fruit and goose texture every spin. Unless you wanted it to like become part of the effect api builder?

ItsVerday commented 3 years ago

I'm not sure if that would work the same way as vanilla multi-state symbols do. Also, internally instances of your mod symbol scripts are actually only created once, rather than once for each symbol. This will cause your symbol to have really weird behavior when multiple of that symbol are on the reels. You could definitely implement multi-state symbols in the current version of the modloader, but it would be in a very roundabout way. For example, you'd probably have to create a new mod symbol for each state. I want to add some functionality to make this a lot more streamlined. I'm not 100% sure how these symbols work internally, I'll have to look into it before implementing this.