1. Please be advised of a few specific rules and guidelines for this section.

RELEASED Pony Race

Discussion in 'Races' started by Chandrak, Dec 10, 2013.

  1. Rarity

    Rarity Pangalactic Porcupine

    That's what I'm trying to figure out. is if we can change the layering order. It seems like it could be in a .frame file, but I couldn't find any in the existing files.
     
  2. Clock Keeper

    Clock Keeper Tentacle Wrangler



    Heliostorm, I'm pretty good at the coding portions of implementation, but I'm rather incompetent on creating sprites. I'm still fumbling around with a single run animation (Two of the bloody frames won't align and I can't figure out why). I'm going to be taking a deeper look into shifting all armor/hats to a more appropriate position without ruining humanoid races, but that'll be one hell of an undertaking. Mostly just adding two or three lines of code to all equipment, but then the whole creating another set of .pngs, bleh.

    And from what I can see, it goes from top to bottom layer: Body, hair, head. Not sure if facial hair goes over hair, but it wouldn't surprise me.
     
  3. Heliostorm

    Heliostorm Phantasmal Quasar

    We might make a good team then if you care to work with me, I've got the base sprites pretty much done. The body parts are offset during animations, I believe it's defined in the humanoid.config, so I've had to move the sprites on the sheet to compensate. It doesn't solve everything though; crouch, for example, sends the tail plunging through the bottom of the floor because it's part of the hair object, and there's no way to move those parts separately.

    Redoing the art for pretty much everything ever doesn't appeal much to me, at least as a starting goal. I'd be happy if we could figure out a way to have the game treat races differently at all, just some kind of check like the ones NPCs use for dialogue.

    Have the race-specific food items been implemented? The description for some of them say that only X race can eat them safely (chili, banana, etc.), but that part doesn't appear to have been implemented in the game. At least, when my Floran eats bananas, she never gets sick.

    I'll probably make a new thread for this tomorrow, so I can stop hoboing around in the Ponex thread.
     
    Last edited: Dec 15, 2013
  4. Clock Keeper

    Clock Keeper Tentacle Wrangler

    I've looked into the foods, and yeah. It doesn't have anything race-specific as of yet. When it does, I'll be able to figure that out. At this time, I'm trying to find the link to death animations, hopefully that'll give me the wording needed to differentiate on race.
     
  5. Rory

    Rory Void-Bound Voyager

    Pony server..!
     
  6. Heliostorm

    Heliostorm Phantasmal Quasar

    I think it just automatically checks the cinematics/respawn folder for a folder with the same race name, and calls the respawn.cinematic. Like everything else about players :(

    The only thing I know of that differentiates on race and isn't hardcoded is NPC responses. main.lua in the npcs folder has this function:


    Code:
    function sayToTarget(dialogType, targetId)
      local dialog = nil
    
      local withSpecies = dialogType .. "." .. entity.species()
    
      if targetId ~= nil then
        local targetSpecies = world.entitySpecies(targetId)
        if targetSpecies ~= nil then
          dialog = entity.staticRandomizeParameter(withSpecies .. "." .. targetSpecies, nil)
        end
      end
    
      if dialog == nil then
        dialog = entity.staticRandomizeParameter(withSpecies .. ".default", nil)
      end
    
      if dialog == nil then
        dialog = entity.staticRandomizeParameter(withSpecies, nil)
      end
    
      if dialog == nil then
        dialog = entity.randomizeParameter(dialogType .. ".default", nil)
      end
    
      if dialog ~= nil then
        entity.say(dialog)
        return true
      end
    
      return false
    end


    Maybe it's something about lua, but it seems really inefficient to me to run "if dialog == nil" three times in a row.

    This seems to use an object in the .npctype files, for example:

    Code:
          "dialog" : {
            "hail" : {
              "default" : [
                "Good to see you!"
              ],
            "avian" : {
              "default" : [
                "Erk! Uh, you surprised me. Hey, boss.",
                "This isn't such a bad job... no Stargazers here, at least.",
                "Hey there, boss - what can I do for you?",
                "Phew. Long day. How's your day been, boss?"
              ]
            },
            "apex" : {
              "default" : [
                "Hey, boss. Back from adventuring?",
                "Argh, food stuck in my beard and the boss is here!",
                "Boss is here. Gotta play it cool. Just like with Big Ape.",
                "Don't worry, boss, I got this under control."
              ]
            },
            "floran" : {
              "default" : [
                "Floran greetsss the almighty employer.",
                "Floran hopesss that boss is trusting...",
                "When does Floran'sss shift end?",
                "Do not worry, boss, Floran will ssstab intrudersss."
              ]
            },
            "glitch" : {
              "default" : [
                "Subservient. Hello, master.",
                "Proud. I have experience guarding things. Like you.",
                "Twitchy. I'll shoot at anything that moves.",
                "Query. Boss, do you think I can get a day off soon?"
              ]
            },
            "human" : {
              "default" : [
                "Hey, boss! I wasn't slacking off, I swear!",
                "Man, look at me, being all guard-y and not sleeping on the job.",
                "Sometimes it's hard to tell between Florans and the local wildlife!",
                "I love being employed as a guard. Gives me lots of thinking time."
              ]
            },
            "hylotl" : {
              "default" : [
                "Hey, boss. Think we could get a remodel here?",
                "The only beautiful thing on this planet is me. Maybe you, also.",
                "This gun you gave me is substandard, boss. It'll have to do...",
                "I'm doing such a good job here, can I get a payrise?"
                ]
              }
            }
          }
        }
      },


    Anyways, what I got from this is that there is an entity.species() that can be called from a targetID. This allows for objects ingame to differentiate between races. How to actually write a script that uses this though, is beyond me.
     
    Last edited: Dec 15, 2013
  7. Rarity

    Rarity Pangalactic Porcupine

    I created a modinfo file for the ponex, but it seems that the new mod loading features *does not* load the .species files, meaning your character *will not* learn new recipes every tier. I'm not sure how to fix this, or if it's an oversight by the devs, but just a heads up. You will need to continue using the bootstrap method for now.
     
  8. DXLelouch

    DXLelouch Void-Bound Voyager

    meh less bootstrap loading is less bootstrap loading (nothings ever easy is it)
     
  9. Rarity

    Rarity Pangalactic Porcupine

    Not sure what's up. Not loading Tier 4 properly. I got Durasteel bars, but not the armor tiers. Could be a issue on my end? Still, something to consider.
     
  10. AuburnFox

    AuburnFox Void-Bound Voyager



    It is inefficient. You can combine them into a single compound statement.

    Code:
    dialog = dialog or (entity.staticRandomizeParameter(withSpecies .. ".default", nil) or entity.staticRandomizeParameter(withSpecies, nil) or entity.randomizeParameter(dialogType .. ".default", nil))
    I believe this will work. I'm a bit rusty with Lua (been a few years), but the gist is right. No need for any if statements.
     
  11. Veav

    Veav Scruffy Nerf-Herder

    man, emotes are rapidly becoming the bane of my existence. If we could use different emotes for male/female I could get so much done. (Heads are shaped differently, dontchaknow.)
     
  12. Chandrak

    Chandrak Phantasmal Quasar

    Updated the OP with a link to the abc files creators' thread. The readme credits will be updated as well in the next update.
    http://community.playstarbound.com/...f-starbound-songs-and-how-to-put-em-in.48081/

    On that note, it may be a day or two til the next update; I've had a few PMs about with offers regarding sprites, so we might be getting in some racial armor and weapons for the mod *fingers crossed*. I'll also probably be changing that neighing hurt sound; its one from the starbound files that I was testing out, but a lot of people (myself included) havent really liked it.
     
  13. Chandrak

    Chandrak Phantasmal Quasar

    Ah, thanks for taking the time to look at that - I've actually been trying to puzzle out what order it truly does things in, but havent actually tried to test for it yet. Another thing I could use the info for is figuring out why some helms obscure only PART of the hair file. (The silver, copper, and human tier1 helms are good examples of the differences)

    No. I dont think there are ANY race-specific abilities or tags implemented yet beyond armor, and thats more a result of the starting recipe system than any code inherent in race or items.
     
  14. Chandrak

    Chandrak Phantasmal Quasar

    Perhaps its something to stick in the suggestions thread, along with being ably to add new sprite layers :p
     
  15. Heliostorm

    Heliostorm Phantasmal Quasar

    There's a mask.png file that gets used to mask the hair.
     
  16. LastAi

    LastAi Void-Bound Voyager

    hmm the new mod support system looks complicated with the new patch
    how ever it look like it makes it easier to update change and modify mods
     
  17. Veav

    Veav Scruffy Nerf-Herder

    It's a bit less trivial to set up now, but I like it because the mods directory is implemented and on by default. It'll make distribution a lot easier - simpler for users to drop-and-drag a folder into a mods directory than ask them to edit config files.

    That would be one of my meta-goals. Not just ponts, but ponts that don't break any existing assets by being included. Consider the attachment file at https://www.dropbox.com/s/ikomhtr8yuaugej/ponybutt.zip ! This overwrites the humans and avians, but only because it's just a tech demo; the core functions can be offloaded to a new species very readily.
     
    Last edited: Dec 15, 2013
  18. Rarity

    Rarity Pangalactic Porcupine

    As of the new update, you will need to edit the player.config and ponex.species files or you won't properly unlocked the Portable Pixel Printer and Tier 4 racial armor respectfully.
     
  19. Heliostorm

    Heliostorm Phantasmal Quasar

    Attachment doesn't work. Uploading to the site is very iffy as of now, I would recommend using something like mediafire. Also, I have no idea what a pont is.
     
  20. Veav

    Veav Scruffy Nerf-Herder

Share This Page