Require( "animob/animob.ts" ) -- this is the top-level aconf for drinks. -- within drinks there are 2 strains, hot and fizzy. -- The hot drink aconf is in drink_hot.aconf, -- the fizzy drink aconf is in drink_fizzy.aconf. -- Both inherit directly from this. return AnimobAconf({ version = 1, -- All aconf files have a version number. We will be backwards compatable -- basic name and appearance info. This will all -- be overridden in any final drink aconf. object = { productName = "Delicious Drink", appearance = { modelName = "m000dr_drink.model", }, }, appKeys = { -- how many sips can I take from a fresh new drink? -- Keep in mind this may be modified by randomization on drink - some drinks -- instances may have special numbers of sips. maxNumSips = 200, -- what sound do I play when trying to drink an empty drink? -- this sound will only be audible to the user. -- I expect that we will NOT override this for different types of drinks. emptySoundFileName = "drink/drink_empty.ogg", emptySoundVolume = 0.15, -- We hope to get rid of this once -- 'emotionActive' works as we'd like. -- For the time being we state how long the emotion is. -- Expect to override this when we override the sip emotion. sipEmotionDuration = 1.9, -- these values are specific to the fizzy drinks but are -- neccessary to preven drinks from assserting when they are created -- with the default aconf. sipSmiley = "sipfizz", emptySmiley = "sipemptyfizz", -- this table, if present, contains descriptions of what makes a drink special. drinkSpecialHow = { -- the name for each "How it's special" matters - it will be used -- in the drinkSpecialRatio table to label how a certain percentage of drinks -- are special. -- -- Right now the only types implemented are ExtraSips, for which you give a number -- of sips to give the drink, or SpecialReaction, for which you give a name of one of -- emotions in the pilot animation triggers, below. -- In either case, you may give a specialName, which will totally override the -- normal name of the drink. large = { type = "ExtraSips", sips = 20, specialName = "Giant Drink", }, strong = { type = "SpecialReaction", reactionSid = "extremeReaction", specialName = "Strong Drink", }, }, -- this table, if present, contains descriptions of what makes a sip special. sipSpecialHow = { -- the name for each "How it's special" matters - it will be used below in the -- amISpecial table to say how the guy is special. -- -- Right now the only type implemented is SpecialReaction, which -- needs a name of one of the emotions in the pilotAnimationTriggers. { name = "extreme", type = "SpecialReaction", reactionSid = "extremeReaction", }, { name = "uncommon", type = "SpecialReaction", reactionSid = "uncommonReaction", }, }, -- this table, if present, describes the likelihood of a given sip being special. -- works like this: -- First, you give the size of your sample set, an integer. It must be a power of -- two. -- Then, you say how many of that sample set does something special, and how they're special -- (referring to the sipSpecialHow table). -- SO this says that in 1024 sips, 300 will be uncommon special reactions and -- 30 will be extreme special reactions. sipSpecialRatio = { sampleSize = 1024, breakdown = { { 300, "uncommon" }, { 30, "extreme" }, }, }, drinkSpecialRatio = { sampleSize = 1024, breakdown = { { 5, "large" }, { 5, "strong" }, }, }, -- no one will ever use these but I Assert if I load one of these babies with no FX in there. -- parties that inherit from this could define flame effects for the drink. fxDefs = { dummyFx = { type = "Flame", flameAngle = 90.0, particleStartWidth = 0.06, flameHeight = 0.4, flameSpeed = 0.3, particlePerFrame = 3.0, direction = { 0, 1, 0 }, velSource = "root", }, }, }, -- physics of the drink, I expect no one will need to change or override this. balls = { root = { joint = "root", radius = 0.1, mass = 0.2, restitution = 0.01, staticFriction = 0.1, dynamicFriction = 0.05, nearbyCollisionRadius = 3.5, airFriction = 0.1, }, }, springs = { }, seats = { }, animators = { }, -- icon for drinks - I expect this to change from drink to drink. carriable = { icon = "ico_drinks_fizzy.png", -- same for every drink, this should not be overridden. poseAdvice = "drink", emotionSuffix = "dr", }, })