# Expected lexer vars: # NS (str), e.g. "spider_" vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": F "is_stickyspider": F # Vars controlling labels which *don't* depend on "is_*spider" vars # (These labels are moved around to animate the spider) # NOTE: these labels are given default values in data/_spider.fus, # so we probably don't actually need to set them here. # PROBABLY TODO: remove them from here; I don't think we would # ever need to modify their values. nosave label "label:head": $PREFIX NS "head" nosave label "label:crawl_head": $PREFIX NS "crawl_head" nosave label "label:sleep_head": $PREFIX NS "sleep_head" nosave label "label:fleg": $PREFIX NS "fleg" nosave label "label:bleg": $PREFIX NS "bleg" # Vars controlling labels which *do* depend on "is_*spider" vars # (These labels are set by proc "update_vars", and are used # to customize the spider's appearance) nosave label "label:_head": null nosave label "label:eye": null nosave label "label:nose": null nosave label "label:toe": null nosave label "label:headbump": null nosave label "label:head_spikes": null nosave label "label:head_spikes_extended": null nosave "carrying": null nosave "carrying_respawn_counter": null nosave label "label:carrying": null nosave "spit_anim": null proc toplevel onstatesetchange "update_vars": # Sets various vars which depend on the "is_*spider" vars. # Default label values: set myvar("label:_head"): $PREFIX NS "_head" set myvar("label:eye"): $PREFIX NS "eye" set myvar("label:nose"): $PREFIX NS "nose" set myvar("label:toe"): null set myvar("label:headbump"): null set myvar("label:head_spikes"): null set myvar("label:head_spikes_extended"): null # Overriding the default label values depending on what # kind(s) of spider we are: if: expr: myvar("is_rollerspider") then: set myvar("label:_head"): $PREFIX NS "_head_roller" if: expr: myvar("is_aimerspider") then: set myvar("label:nose"): $PREFIX NS "nose_aimer" set myvar("label:headbump"): $PREFIX NS "headbump_aimer" if: expr: myvar("is_flierspider") then: set myvar("label:headbump"): $PREFIX NS "headbump_flier" if: expr: myvar("is_spikeyspider") then: set myvar("label:head_spikes"): $PREFIX NS "head_spikes" set myvar("label:head_spikes_extended"): $PREFIX NS "head_spikes_extended" if: expr: myvar("is_flipspider") then: set myvar("label:eye"): $PREFIX NS "eye_flip" if: expr: myvar("is_stickyspider") then: set myvar("label:toe"): $PREFIX NS "toe_sticky" # Set myvar("spit_anim"), i.e. which stateset to use when spawning # our "spit" $IF EYESPIDER: set myvar("spit_anim"): "anim/eyespit.fus" $IF !EYESPIDER: if: expr: myvar("is_spikeyspider") then: set myvar("spit_anim"): "anim/spikeyspit.fus" else: set myvar("spit_anim"): "anim/spit.fus"