Refactoring. New and improved SfPlayerCharacter to model character sheets.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2021-11-17 11:14:12 -05:00
parent 62756bf703
commit 40ab1d0000
25 changed files with 97 additions and 21 deletions

View File

@ -0,0 +1 @@
I model a simple bot to automatize some tasks related with rolling oracles, character creation and playin in general.

View File

@ -1,7 +1,9 @@
accessing
newRandomPlayerCharacter
^ SfPlayerCharacter new
momentum;
momentum: 2;
maxMomentum: 10;
momentumReset: 2;
health: 5;
spirit: 5;
supply: 5.

View File

@ -0,0 +1,11 @@
accessing
rollDice
"For the moment, I will model a dice roll in Ironsworn Starforged.
A more abstract vocabulary should be deviced allowing the roll of
dice pool"
^ OrderedDictionary new
at: 'challenge die (1):' put: 10 atRandom;
at: 'action die:' put: 6 atRandom;
at: 'challenge die (2):' put: 10 atRandom;
yourself.

View File

@ -1,5 +1,5 @@
{
"commentStamp" : "",
"commentStamp" : "<historical>",
"super" : "Object",
"category" : "RoloLudo",
"classinstvars" : [ ],

View File

@ -1,7 +1,8 @@
accessing
fromDictionary: aDictionary
| optionsTable |
name := aDictionary at: 'Name' ifAbsent: [ name := aDictionary at: 'Display name' ].
name := aDictionary at: 'Name' ifAbsent: [ name := aDictionary at: 'Display name' ].
intro := aDictionary at: 'Description'.
optionsTable := aDictionary at: 'Table'.
optionsTable doWithIndex: [:opt :i | | key value prevKey |
(i = 1)

View File

@ -0,0 +1,4 @@
accessing
edge: anRagedInteger
"Edge: Quickness, agility, and prowess when fighting at a distance"
edge := anRagedInteger

View File

@ -0,0 +1,4 @@
accessing
edge
^ edge

View File

@ -0,0 +1,4 @@
accessing
heart: integerBetween1and3
"Heart: Courage, willpower, empathy, sociability, and loyalty"
heart := integerBetween1and3

View File

@ -0,0 +1,4 @@
accessing
heart
^ heart

View File

@ -0,0 +1,4 @@
accessing
iron: integerBetween1and3
"Iron: Physical strength, endurance, aggressiveness, and prowess when fighting at close quarters"
iron := integerBetween1and3

View File

@ -0,0 +1,4 @@
accessing
iron
^ iron

View File

@ -0,0 +1,4 @@
accessing
maxMomentum: anObject
maxMomentum := anObject

View File

@ -0,0 +1,4 @@
accessing
maxMomentum
^ maxMomentum

View File

@ -1,4 +1,4 @@
accessing
momentum: anObject
momentum: anInteger
momentum := anObject
momentum := anInteger

View File

@ -1,8 +1,3 @@
accessing
momentum
^ momentum ifNil: [
momentum := Dictionary new
at: 'max' put: 10;
at: 'reset' put: 2;
at: 'current' put: 2.
]
^ momentum

View File

@ -0,0 +1,4 @@
accessing
momentumReset: anObject
momentumReset := anObject

View File

@ -0,0 +1,4 @@
accessing
momentumReset
^ momentumReset

View File

@ -0,0 +1,4 @@
accessing
shadow: integerBetween1And3
"Shadow: Sneakiness, deceptiveness, and cunning"
shadow := integerBetween1And3

View File

@ -0,0 +1,4 @@
accessing
shadow
^ shadow

View File

@ -1,4 +0,0 @@
accessing
stats: anObject
stats := anObject

View File

@ -1,4 +1,12 @@
accessing
stats
^ stats
^ Dictionary new
addAll: {
'Edge' -> self edge .
'Heart' -> self heart.
'Iron' -> self iron.
'Shadow' -> self shadow.
'Wits' -> self wits
};
yourself

View File

@ -1,4 +1,4 @@
accessing
vows: anObject
vows: aDictionary
vows := anObject
vows := aDictionary

View File

@ -0,0 +1,4 @@
accessing
wits: aRangedInteger
"Wits: Expertise, knowledge, and observation"
wits := aRangedInteger

View File

@ -0,0 +1,4 @@
accessing
wits
^ wits

View File

@ -10,12 +10,18 @@
"pronouns",
"callsign",
"assets",
"stats",
"edge",
"heart",
"iron",
"shadow",
"wits",
"vows",
"momentum",
"health",
"spirit",
"supply"
"supply",
"momentum",
"momentumReset",
"maxMomentum"
],
"name" : "SfPlayerCharacter",
"type" : "normal"