Author Topic: <-- Archived -->  (Read 112620 times)

0 Members and 1 Guest are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
<-- Archived -->
« on: May 03, 2013, 04:07:47 AM »
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: [Select]
id="Dummy Item"
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: [Select]
icon="content/items/dummy_item.png"

Optional fields:

Description:
- Defaults to an empty string.
- xml field:
Code: [Select]
desc="This is a dummy item for testing!"
Changing stats:
- Defaults to an empty dict.
- xml field:
Code: [Select]
<mod charisma = '20' />
Changing minimum/maximum of stats:
- Defaults to an empty dict.
- xml field:
Code: [Select]
<min charisma = '20' />- xml field:
Code: [Select]
<max charisma = '20' />
Add/Remove traits:
- Defaults to an empty list.
- xml field:
Code: [Select]
<addtrait name = 'Sexy Air' />- xml field:
Code: [Select]
<removetrait name = 'Retarded' />
Add/Remove skills:
- Defaults to an empty list.
- xml field:
Code: [Select]
<addskill name = 'Water 2' />- xml field:
Code: [Select]
<removeskill name = 'Fire 1' />
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: [Select]
<addeffect name = 'Dizzy' />- xml field:
Code: [Select]
<removeeffect name = 'Poisoned' />
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: [Select]
<location name = 'Item Shop' />
List of traits that favor/reject the item: (for auto-equipping or shopping).
- Defaults to an empty list.
- xml field:
Code: [Select]
<goodtrait name = 'Strong' />- xml field:
Code: [Select]
<badtrait name = 'Meek' />
Price:
- Defaults to 0.
- xml field:
Code: [Select]
price = '10'
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!)
- Defaults to 'false' and game will enforce 'false' if item is not consumable or misc.
- xml field:
Code: [Select]
cmax = '75'
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: [Select]
sex = 'female'
Infinite: (If item is infinite in the shop)
- Defaults to false.
- xml field:
Code: [Select]
infinite = 'false'
Chance:(To acquire an item at any Location)
- Defaults to 50 if not specified.
- xml field:
Code: [Select]
chance = '100'
Badness: (Chance of girl buying this item)
- Defaults to 0 if not specified. (Meaning 100% chance)
- xml field:
Code: [Select]
badness = '10'
EqChance: (Chance of girl AutoEquipping the item)
- Defaults to Badness if not specified.
- xml field:
Code: [Select]
eqchance = '22'

Slots:
- Slot default to consumable!
- xml field:
Code: [Select]
slot = 'consumable'
List of slots:

Code: [Select]
            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
                                      )

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: [Select]
cblock = '5'
Temp: If item effect is temporary (in days).
- Defaults to false
- xml field:
Code: [Select]
ctemp = '3'
Effect: Determines the 'area' of items effect.
- Defaults to false (Meaning single girl)
- xml field:
Code: [Select]
ceffect = 'brothelfree'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: [Select]
mtemp = '3'
Destruct: (Optional) Does the item disappear after it takes effect.
- Defaults to false.
- xml field:
Code: [Select]
mdestruct = 'true'
Reusable: Blocks the item to be used for the same girl twice.
- Defaults to false.
- xml field:
Code: [Select]
mreusable = 'false'

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: [Select]
type = 'Sword'

   - 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 <.
« Last Edit: June 15, 2013, 04:44:54 AM by Xela »
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: -PyTFall- Dev Thread: Items Concept
« Reply #1 on: May 03, 2013, 04:08:11 AM »
Traits Concept Design:

Traits will be created in XML.


Trait might fail without this field:

ID: Name of the Trait.
- Game is likely to crash if not specified.
- xml field:
Code: [Select]
id="Big Boobs"

Optional Fields:

Description:
- Defaults to an empty string.
- xml field:
Code: [Select]
desc="This girl really has knockers."
Temp: Trait has only temporary effect.
- Defaults to 0. (Effect is permanent)
- xml field:
Code: [Select]
temp='0'
Modifies stat values (current, max, min):
- Defaults to an empty list
- xml field:
Code: [Select]
<mod charisma = '10' />
      <max charisma = '10' />
      <min charisma = '10' />

Block: Blocks other traits while active.
- Defaults to an empty list.
- xml field:
Code: [Select]
<blocks name = 'Small Boobs' />
Effect: Does not currently do anything.
- Defaults to an empty list.
-


Notes:

- Traits are supposed to be more permanent than items so in this scenario:

Girl has 80 charisma current and 100 charisma max.

Case 1:
- Girls acquires a trait that raises her charisma by 20 points (Maxed out).
- Girl works hard on improving her looks and gains 10 more points (Still at 100 because of Max stat).
- Girl looses the trait, her charisma falls back to 80 points.
 
Case 2:
- Girl equips an item that raises her charisma by 20 points (Maxed out).
- Girl works hard on improving her looks and gains 10 more points (Still at 100 because of Max stat).
- Girls takes the item of, her charisma is now 90 points.

This is done by design in order to prevent chaos of traits being awarded/removed by every item and event and getting girls with a few dozen traits each (Block is another precaution)

- There is a trait related field in girl's XML called Absolute Block, that ensures that a number of traits can NEVER be awarded to a girl. There is no way to influence that through traits or items and the only way to clear that list is command in game's console or python script.
« Last Edit: May 31, 2013, 01:42:56 PM by Xela »
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: -PyTFall- Dev Thread: Items Concept
« Reply #2 on: May 03, 2013, 04:38:42 AM »
Brothels concept:

XML Fields:


Code: [Select]
id= "1"ID, should be numerical from 1 to 10.  To be used by the game internally.


Code: [Select]
img='content/buildings/oldshack.jpg'Image of the Brothel.


Code: [Select]
name= 'Old Shack'Name of the brothel to be displayed to the player.


Code: [Select]
desc= 'Small, rundown building on the very outskirts of town.'Description of the Hotel.


Code: [Select]
price= '500'Price of the building.

Code: [Select]
upgrade_slots= '5'Game defaults this to 3, sets maximum amount of upgrades slots for the brothel.

Code: [Select]
rooms= '1'
maxrooms= '2'
Amount of rooms and maximum amount of rooms.


Code: [Select]
fame= '0'
maxfame= '100'
Fame and maximum fame. Amount of clients coming to a brothel partially depends on this.


Code: [Select]
rep= '0'
maxrep= '100'
Reputation and maximum reputation. Quality of clients depends on this.


Code: [Select]
maxrank= '2'Max rank prostitutes can obtain in this brothel.


Code: [Select]
mod= '1'Modifier to base prices. Each upgrade has a fixed price, this field is a multiplier for that price so upgrades, upkeep and advertisements can be adjusted.



=============================
Other stats:


Dirt:
Representation of brothels state, high values should scare off costumers and have negative effects on work.


Base Clients:
Set to 5 for all brothels but this value is (should be) also effected by brothel modifier.

=============================
Other attributes:


Flags:
Same system as for girls.


Bookkeeping:
Brothels support basic bookkeeping (income/expenses). Calculated per brothel and logged in on daily basis.


Advertising:
Modifies fame and reputation of the brothel.
Code: [Select]
            self.advert = dict(
                sign = dict(active = false, price = 200),
                flyers = dict(active = false, price = 30),
                magazine = dict(active = false, price = 50),
                billboard = dict(active = false, price = 100),
                girl = dict(active = false, price = 150),
                celeb = dict(active = false, price = 5000)
                )

* Lack of signboard should set clients to 0?

==============================================================
Upgrades:

1) Garden

- Flowerbeds (Joy bonus)
- Garden (Rest + Joy)
- Landscape design (Rest + Joy + Costumer satisfaction bonus)



2) Rooms

- Improved interior (Costumer satisfaction, Joy, Price)
- Luxury Rooms (Costumer satisfaction, Joy, Price)
- VIP Rooms (Costumer satisfaction, Joy, Price)


3) Guards

- Guard Quarters (Frees up all rooms otherwise taken by security (max 5), small security bonus)
- Training Quarters (Battle stats bonuses of girls had nothing to do during the day)
- Sparring Quarters (Better battle stat bonuses + joy bonuses + disposition bonuses for warriors in the building)


4) Bar

- Bar (Enables Bar job)
- Draft Beer (Improves income)
- Tapas (Tasty snacks, farther improves income and costumer satisfaction)


5) Strip Lounge

- Strip Lounge (Enables Strip job)
- Large podium (Improves girls stats and costumer satisfaction)
- Golden cages (Further Improves girls stats, costumer satisfaction and income from the club)


6) Main hall

- Main Hall (Improves costumer satisfaction, security and reputation)
- Reception (Improves brothel income, costumer satisfaction)
- Statue of some goddess (Improves fame and brothel income)


Upgrades are set in xml on the main node. Yeah brothel can have each own set:

Entries are:

Code: [Select]
      garden = '3'
      bar = '3'
      stripclub = '3'
      room_upgrades = '3'
      mainhall = '3'
      guards = '3'


garden = '2' would mean garden branch can be upgraded to level 2 (including).

Otherwise there are now slots, for example, if brothel just has 2 slots, even if all 18 upgrades are available, only two can be built, game will throw an no slots available warning afterwards.

==================================
We've discussed (I will be coding this in soon):

Upkeep:
Should be paid on weekly basis and preferably only for good brothels (aka property tax).


Upgrades:
As soon as we figure out what upgrades we need, I will code in a system that enables them on per brothel basis on xml. One idea I really liked is to allow more upgrades than their are slots to fill them in a brothel.


Security level:
Come up with a security level system.


Damage:
Dislike this myself, but I'll think about it.

Location: Just an extra field in the class, can be added after we have actually locations.
« Last Edit: May 31, 2013, 02:52:36 PM by Xela »
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: -PyTFall- Dev Thread: Items/Traits Concept
« Reply #3 on: May 03, 2013, 07:03:54 AM »
Reserved
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: -PyTFall- Dev Thread: Items/Traits Concept
« Reply #4 on: May 03, 2013, 07:04:18 AM »
Reserved
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Reserved
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
How about we clarify weapons types, and from tomorrow I'll begin to write items xml? Unless you have more complex or simply different idea in mind, I suggest D&D system I mentioned before.

Maybe also types of armor (light/heavy)? And how many items of each type you'll need for beta?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
And how many items of each type you'll need for beta?

No idea about, 1 sword, one dagger, 3 or 4 potions, 2 or 3 misc items, 2 or 3 dresses, 2 or 3 pairs of boots, 1 armor, 1 amulet, 4 rings, 2 pairs of boots, 1 wristband, 1 cape, 1 helmet or tiara.

How about we clarify weapons types, and from tomorrow I'll begin to write items xml? Unless you have more complex or simply different idea in mind, I suggest D&D system I mentioned before.

Maybe also types of armor (light/heavy)?

No point in light/heavy armor that I can see.

As for weapons, for now just specify their kind under 'type' field: Sword, Dagger etc. That will be enough for now.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
No point in light/heavy armor that I can see.
Available occupations, I guess. Only warriors can use heavy, and so on.
Then again, I wonder if anyone besides warriors will have benefits from armor, since we have dresses as well.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Available occupations, I guess. Only warriors can use heavy, and so on.
Then again, I wonder if anyone besides warriors will have benefits from armor, since we have dresses as well.

If you feel like we need that, for me it's 10 - 15 extra lines of code so it's ok. I am not sure how that benefits the game at this point.
Like what we're doing?

Offline CherryWood

  • Hero Member
  • *****
  • Posts: 643
No idea about, 1 sword, one dagger, 3 or 4 potions, 2 or 3 misc items, 2 or 3 dresses, 2 or 3 pairs of boots, 1 armor, 1 amulet, 4 rings, 2 pairs of boots, 1 wristband, 1 cape, 1 helmet or tiara.
also a few basic gifts for girlmeets/disposition please

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
also a few basic gifts for girlmeets/disposition please

LoL

Yeah, a dildo, analprobe and teddy bear would do the trick :)
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Ah yes, gifts for girls. Do we need another item type for those? They are simply consumables in wm, but since we are going to use them in combat, we need some mechanism to prevent things like bouquets of flowers in belt slots.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Ah yes, gifts for girls. Do we need another item type for those? They are simply consumables in wm, but since we are going to use them in combat, we need some mechanism to prevent things like bouquets of flowers in belt slots.

Already in place, game will only recognize 2 or 3 potions for battles, rest will not show even if equipped to the belt. Same for autocalc function that resolves combat by comparing parties luck and stats (right now doesn't even take items in the account).


=================================
I am done for tonight, good deal of discussion and a good bit of code are accomplished.

Right now items class and import function from xml are finished. Equip, unequip and apply effects are also done. Tomorrow if time allows I'll write remove effects method, counters for misc/consumable slot and special apply effects method for consumable slot because it has areal effect (more than one girl effected).


By the way, if anyone has new insight on how we should do the shops and equipment screens, I would like to hear some thoughts. Maybe examples from other games on how it's done there.
« Last Edit: May 04, 2013, 05:26:34 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
That doesn't explain how the game will differentiate one from another. I don't see any "combat" or "non combat" flags in items fields you mentioned here.