PyTFall > PyTFall: Game design

<-- Archived --> (Items Concept)

(1/26) > >>

Xela:
Archived, we've been using JSON for a while and added more fields/slots/types to Items.

Items Concept Design:

Items will be created in XML, field default values will be filled be the class.


Item might fail without these 2 fields:

ID: Name of the Item.
- Game is likely to crash if not specified.
- xml field:
--- Code: ---id="Dummy Item"
--- End code ---

Icon: Path to file with picture of an item.
- We might use default here as well after we find some pics for slots that would make good defaults. For now, this is the second field item will fail without!
- xml field:
--- Code: ---icon="content/items/dummy_item.png"
--- End code ---


Optional fields:

Description:
- Defaults to an empty string.
- xml field:
--- Code: ---desc="This is a dummy item for testing!"
--- End code ---

Changing stats:
- Defaults to an empty dict.
- xml field:
--- Code: ---<mod charisma = '20' />
--- End code ---

Changing minimum/maximum of stats:
- Defaults to an empty dict.
- xml field:
--- Code: ---<min charisma = '20' />
--- End code ---
- xml field:
--- Code: ---<max charisma = '20' />
--- End code ---

Add/Remove traits:
- Defaults to an empty list.
- xml field:
--- Code: ---<addtrait name = 'Sexy Air' />
--- End code ---
- xml field:
--- Code: ---<removetrait name = 'Retarded' />
--- End code ---

Add/Remove skills:
- Defaults to an empty list.
- xml field:
--- Code: ---<addskill name = 'Water 2' />
--- End code ---
- xml field:
--- Code: ---<removeskill name = 'Fire 1' />
--- End code ---

Add/Remove Effects:
- Not implemented yet but the fields will be there. Effects in the future would be sick, poisoned, exhausted, pregnant and so on).
- Defaults to an empty list.
- xml field:
--- Code: ---<addeffect name = 'Dizzy' />
--- End code ---
- xml field:
--- Code: ---<removeeffect name = 'Poisoned' />
--- End code ---

Locations: Locations where the item can be acquired.
- At least one must be specified or item will be registered but will never appear in the game. The only reason to leave this out is if item can only be awarded by a script.
- This defaults to an empty list.
- xml field:
--- Code: ---<location name = 'Item Shop' />
--- End code ---

List of traits that favor/reject the item: (for auto-equipping or shopping).
- Defaults to an empty list.
- xml field:
--- Code: ---<goodtrait name = 'Strong' />
--- End code ---
- xml field:
--- Code: ---<badtrait name = 'Meek' />
--- End code ---

Price:
- Defaults to 0.
- xml field:
--- Code: ---price = '10'
--- End code ---

Cmax: Will only apply mod effects if girl's stat is below this value. The idea is not to allow cheap, peace of crap consumables to max out a girl completely. (Now also works for misc items!) Cmax will not work with ctemp and if ctemp is active, your cmax setting will be overridden.
- Defaults to 'false' and game will enforce 'false' if item is not consumable or misc.
- xml field:
--- Code: ---cmax = '75'
--- End code ---

Sex: (Male/Female/Uni)  This should prevent Male hero from being able to equip a dress or a strap-on.
- This will defaults to Unisex
- xml field:
--- Code: ---sex = 'female'
--- End code ---

Infinite: (If item is infinite in the shop)
- Defaults to false.
- xml field:
--- Code: ---infinite = 'false'
--- End code ---

Chance:(To acquire an item at any Location)
- Defaults to 50 if not specified.
- xml field:
--- Code: ---chance = '100'
--- End code ---

Badness: (Chance of girl buying this item)
- Defaults to 0 if not specified. (Meaning 100% chance)
- xml field:
--- Code: ---badness = '10'
--- End code ---

EqChance: (Chance of girl AutoEquipping the item)
- Defaults to Badness if not specified.
- xml field:
--- Code: ---eqchance = '22'
--- End code ---


Slots:
- Slot default to consumable!
- xml field:
--- Code: ---slot = 'consumable'
--- End code ---

List of slots:


--- Code: ---            self.eqslots = dict(head = false,
                                      body = false,
                                      cape = false,
                                      feet = false,
                                      amulet = false,
                                      wrist = false,
                                      weapon = false,
                                      smallweapon = false,
                                      ring0 = false,
                                      ring1 = false,
                                      ring2 = false,
                                      belt0 = false,
                                      belt1 = false,
                                      belt2 = false,
                                      misc = false,
                                      consumable = None
                                      )
--- End code ---

The 'key' (or the first word in each pair) is the slot you can choose for the item.

Options (possible but not limited to):
Weapon Slot - Sword, Dagger, Mace.
Concealed Weapon Slot - Dagger.
Three Ring Slots - Rings
Amulet Slot - Amulet
Head Slot - Helmet, Tiara, Crown
Body Slot - Armor/Clothing
Cape Slot - Cape
Feet Slot - Boots
Consumable Slot - Consumable


Consumable also opens a number of optional fields (maybe more in the future):

Block: Will have no effect if used again before x number of days. (Actually cannot be used again the way I programmed it for now)
- Defaults to false.
- xml field:
--- Code: ---cblock = '5'
--- End code ---

Temp: If item effect is temporary (in days).
- Defaults to false
- xml field:
--- Code: ---ctemp = '3'
--- End code ---

Effect: Determines the 'area' of items effect.
- Defaults to false (Meaning single girl)
- xml field:
--- Code: ---ceffect = 'brothelfree'
--- End code ---
Effect areas:
- 'false' = Single Girl
- 'brothelgirls' = All Girls in the same brothel with the girl.
- 'brothelfree' = All free girls in the brothel.
- 'brothelslave' = All slavegirls in the brothel.
- 'allslaves' = All slave girls that you own.
- 'allfree' = All free girls working for you.
- 'allgirls' = All girls in your service.


Three Belt Slots - To take items into battle or use them in events/quests.

Note: Battle Items are always consumables and will be created by dev team because we'll have to design them twice (Once in the game and another in BE). After a decent release version of a game is completed, I will figure out Battle Engine in depth and create a bridge to items as well as adding more synergy between BE and the game. For now I would prefer to focus on game code and content using just basic BE features.

Misc Slot:
- Will allow to equip one item that will give it's full effect after an item has been worn for a number of days. Basically the moment item is equipped, game starts to count days until a specified number is reached, than applies it's effect permanently and can be passed to a different girl or disappears.

Misc slot adds new fields:

Temp: How long until item takes affect in days.
- Will default to 10 days.
- xml field:
--- Code: ---mtemp = '3'
--- End code ---

Destruct: (Optional) Does the item disappear after it takes effect.
- Defaults to false.
- xml field:
--- Code: ---mdestruct = 'true'
--- End code ---

Reusable: Blocks the item to be used for the same girl twice.
- Defaults to false.
- xml field:
--- Code: ---mreusable = 'false'
--- End code ---


Book for example might be set to:
Reusable: false
Destruct : false
Temp = 10

Pet might be set to:
Reusable: true
Destruct : false
Temp = 1



Type: Important in some places like weapons since different weapons might make different sounds and have different damage modifiers in battle engine.
- Default to it's slot.
- xml field:
--- Code: ---type = 'Sword'
--- End code ---


   - Items should be stackable.
   - Shops should have locked inventories to be restocked once in 'x' number of days.


Notes:


- Only consumables (without temp effect) and misc items should award traits because if girl already has a trait that is awarded to her by a wearable item (ring or cape for example), trait will disappear as item is taken off. This is obviously possible to avoid but that would require a bit of coding and I see little benefit.


----------------------------------------------------------------------------
Still to design:
 We still need to decide if we want shops to look like they do in Alkion/OtherWorld or give them a retro look like in old FF games.
 Another issue is how to pass items to girls from player, do it in the girl profile screen or construct something like WM.

TODO:
- Items that can only be equipped by one character.
- Change upkeep, exp, gold.
- For cmax you should probably use condition <= rather than just <.

Xela:
- Reserved -

DarkTl:
Capes are done. I almost run out of good icons for them, and they are hard to find, so I doubt there will be many capes even in the final release.
Next slot is body.

Xela:

--- Quote from: DarkTl on June 16, 2013, 08:00:18 AM ---Capes are done. I almost run out of good icons for them, and they are hard to find, so I doubt there will be many capes even in the final release.
Next slot is body.

--- End quote ---

Sweet :)

DarkTl:
I have troubles with porting Chainmail Bikini from WM since I'm unable to find a decent icon for it. At all.
If anyone has enough time and desire to create it, I would appreciate it.

Navigation

[0] Message Index

[#] Next page

Go to full version