90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
...
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
...
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
local invis = lib.image '[fill:1x1:0,0:#00000000'
local plate = adorn.suit and adorn.suit.plate or invis
local lining = adorn.suit and adorn.suit.lining or invis
return {lining, plate, skin, skin, eye, hair}
end;
stats = {
psi = 1.2;
nutrition = .8; -- women have smaller stomachs
hydration = .8;
morale = 0.8; -- you are not She-Bear Grylls
irradiation = 0.8; -- you are smaller, so it takes less rads to kill ya
};
traits = {
health = 400;
................................................................................
lungCapacity = .6;
sturdiness = 0; -- women are more fragile and thus susceptible to blunt force trauma
metabolism = .150; -- kCal/s
painTolerance = 0.4;
dehydration = 10e-4; -- L/s
speed = 1.1;
staminaRegen = 10.0;
psiRegen = 0.05; -- ψ/s
psiPower = 1.2;
};
};
male = {
name = 'Human Male';
eyeHeight = 1.6;
stats = {
psi = 1.0;
nutrition = 1.0;
hydration = 1.0;
staminaRegen = 7; -- men are strong but have inferior endurance
};
traits = {
health = 500;
painTolerance = 1.0;
lungCapacity = 1.0;
sturdiness = 0.3;
metabolism = .150; -- kCal/s
dehydration = 15e-4; -- L/s
speed = 1.0;
psiRegen = 0.025;
psiPower = 1.0;
};
};
};
traits = {};
abilities = {bioAbilities.sprint};
};
}
................................................................................
local min, max = starlit.world.species.statRange(pSpecies, pVariant, st)
local delta = max - min
return min + delta*p
end
local ps = starlit.world.species.mkPersonaFor(pSpecies,pVariant)
local startingHP = pct('health', 1.0)
if circumstances.injured then startingHP = pct('health', circumstances.injured) end
if circumstances.psiCharged then ps.statDeltas.psi = pct('psi', circumstances.psiCharged) end
for k,v in pairs(starlit.world.stats) do ps.statDeltas[k] = 0 end
ps.statDeltas.warmth = 20 -- don't instantly start dying of frostbite
ps.statDeltas.nutrition = 2000 -- shoulda packed more MRE :c
ps.statDeltas.hydration = 3 -- stay hydrated uwu
entity:set_properties{hp_max = var.traits.health or sp.traits.health}
entity:set_hp(startingHP, 'initial hp')
|
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
...
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
...
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
local invis = lib.image '[fill:1x1:0,0:#00000000'
local plate = adorn.suit and adorn.suit.plate or invis
local lining = adorn.suit and adorn.suit.lining or invis
return {lining, plate, skin, skin, eye, hair}
end;
stats = {
numina = 1.2;
nutrition = .8; -- women have smaller stomachs
hydration = .8;
morale = 0.8; -- you are not She-Bear Grylls
irradiation = 0.8; -- you are smaller, so it takes less rads to kill ya
};
traits = {
health = 400;
................................................................................
lungCapacity = .6;
sturdiness = 0; -- women are more fragile and thus susceptible to blunt force trauma
metabolism = .150; -- kCal/s
painTolerance = 0.4;
dehydration = 10e-4; -- L/s
speed = 1.1;
staminaRegen = 10.0;
numinaRegen = 0.05; -- ψ/s
psi = 1.2;
};
};
male = {
name = 'Human Male';
eyeHeight = 1.6;
stats = {
numina = 1.0;
nutrition = 1.0;
hydration = 1.0;
staminaRegen = 7; -- men are strong but have inferior endurance
};
traits = {
health = 500;
painTolerance = 1.0;
lungCapacity = 1.0;
sturdiness = 0.3;
metabolism = .150; -- kCal/s
dehydration = 15e-4; -- L/s
speed = 1.0;
numinaRegen = 0.025;
psi = 1.0;
};
};
};
traits = {};
abilities = {bioAbilities.sprint};
};
}
................................................................................
local min, max = starlit.world.species.statRange(pSpecies, pVariant, st)
local delta = max - min
return min + delta*p
end
local ps = starlit.world.species.mkPersonaFor(pSpecies,pVariant)
local startingHP = pct('health', 1.0)
if circumstances.injured then startingHP = pct('health', circumstances.injured) end
if circumstances.numinaCharged then ps.statDeltas.numina = pct('numina', circumstances.numinaCharged) end
for k,v in pairs(starlit.world.stats) do ps.statDeltas[k] = 0 end
ps.statDeltas.warmth = 20 -- don't instantly start dying of frostbite
ps.statDeltas.nutrition = 2000 -- shoulda packed more MRE :c
ps.statDeltas.hydration = 3 -- stay hydrated uwu
entity:set_properties{hp_max = var.traits.health or sp.traits.health}
entity:set_hp(startingHP, 'initial hp')
|