Author Topic: General Discussion  (Read 3821572 times)

0 Members and 47 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1545 on: January 30, 2014, 11:58:36 AM »
Yeah, but I don't even know what to write there right now. Does the game have a list of existing battle skills in some file that I could view via notepad+ or something?

Nope, that's what I got rid of, but you can find all skills registered to BE in assets.rpy file in BE folder:

Code: [Select]
    Library.Skills = object()

    # Now we're creating individual skills one by one and adding them to the library
    Library.Skills.SwordAttack = AttackSkill(command=[('Attack', -1)], multiplier=1.2, sfx="content/sfx/sound/be/sword.wav")
    Library.Skills.KnifeAttack = AttackSkill(command=[('Attack', -1)], multiplier=0.8, sfx="content/sfx/sound/be/knife.wav", name="Knife")
    Library.Skills.ClawAttack = AttackSkill(command=[('Attack', -1)], multiplier=1, sfx="content/sfx/sound/be/sword.wav", name="Slash")
    Library.Skills.FistAttack = AttackSkill(command=[('Attack', -1)], multiplier=1, sfx="content/sfx/sound/be/knife.wav", name="Hit")

and:

Code: [Select]
    Library.Skills.Fire1 = MagicFighterAttackSkill("Fire 1", attributes=['magic', 'fire'], damage=5, cost=5, range=4, sprite_impact=BattleSprite('fire 1', anchor=(0.5, 0.8)), pause=0.4, sfx="content/sfx/sound/be/fire.wav")
    Library.Skills.Fire2 = MagicFighterAttackSkill("Fire 2", attributes=['magic', 'fire'], damage=10, cost=8, range=4, sprite_impact=BattleSprite('fire 2', anchor=(0.5, 0.8)), pause=0.8, sfx="content/sfx/sound/be/fire2.wav")
    Library.Skills.Fire3 = MagicFactionAttackSkill("Fire 3", attributes=['magic', 'fire'], damage=7, cost=10, sprite=BattleSprite('fire 1', anchor=(0.5, 0.8)), pause=0.4, sfx="content/sfx/sound/be/fire.wav")
   
    Library.Skills.Water1 = MagicFighterAttackSkill("Water 1", attributes=['magic', 'water'], damage=5, cost=5, range=4, sprite_impact=BattleSprite('water 1', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/water.wav")
    Library.Skills.Water2 = MagicFighterAttackSkill("Water 2", attributes=['magic', 'water'], damage=10, cost=8, range=4, sprite_impact=BattleSprite('water 2', anchor=(0.5, 0.8)), pause=1.2, sfx="content/sfx/sound/be/water2.wav")
    Library.Skills.Water3 = MagicFactionAttackSkill("Water 3", attributes=['magic', 'water'], damage=7, cost=10, sprite=BattleSprite('water 1', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/water.wav")

    Library.Skills.Earth1 = MagicFighterAttackSkill("Earth 1", attributes=['magic', 'earth'], damage=5, cost=5, range=4, sprite_impact=BattleSprite('earth 1', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/earth.wav")
    Library.Skills.Earth2 = MagicFighterAttackSkill("Earth 2", attributes=['magic', 'earth'], damage=10, cost=8, range=4, sprite_impact=BattleSprite('earth 2', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/earth2.wav")
    Library.Skills.Earth3 = MagicFactionAttackSkill("Earth 3", attributes=['magic', 'earth'], damage=7, cost=10, sprite=BattleSprite('earth 1', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/earth.wav")

    Library.Skills.Windwhirl = MagicFighterAttackSkill("Windwhirl", attributes=['magic', 'earth'], damage=5, cost=5, range=4, sprite_impact=BattleSprite('Whirlwind',anchor=(0.5, 0.9)), impact_duration=1.1, pause=0, sfx="content/sfx/sound/be/Whirlwind.wav")   
    Library.Skills.IceArrow = MagicFighterAttackSkill("Ice Arrow", attributes=['magic', 'water'], damage=10, cost=8, range=4, sprite_cast=BattleSprite('Ice Arrow cast',anchor=(0.5, 0.9)), cast_duration=0.6, sprite_fly=BattleSprite('Ice Arrow fly',anchor=(0.5, 0.9)), fly_duration=0.4, sprite_impact=BattleSprite('Ice Arrow impact',anchor=(0.5, 0.9)), impact_duration=0.9, pause=0, sfx="content/sfx/sound/be/Ice Arrow.wav")
    Library.Skills.FireArrow = MagicFighterAttackSkill("Fire Arrow", attributes=['magic', 'fire'], damage=10, cost=8, range=4, sprite_cast=BattleSprite('Fire Arrow cast',anchor=(0.5, 0.9)), cast_duration=0.6, sprite_fly=BattleSprite('Fire Arrow fly',anchor=(0.5, 0.9)), fly_duration=0.4, sprite_impact=BattleSprite('Fire Arrow impact',anchor=(0.5, 0.95)), impact_duration=0.9, pause=0, sfx="content/sfx/sound/be/Fire Arrow.wav")
    #For Sailor Mars
    Library.Skills.MarsFlameSniper = MagicFighterAttackSkill("Mars Flame Sniper", attributes=['magic', 'fire'], damage=12, cost=9, range=4, sprite_cast=BattleSprite('Fire Arrow cast',anchor=(0.5, 0.8)), cast_duration=0.6, sprite_fly=BattleSprite('Fire Arrow fly',anchor=(0.5, 0.8)), fly_duration=0.4, sprite_impact=BattleSprite('Fire Arrow impact',anchor=(0.5, 0.9)), impact_duration=0.78, sprite_special=BattleSprite('Sailor Mars Flame Sniper',anchor=(0.5, 0.5)), special_duration=0.8, sprite_special_pos=At(truecenter), img_display_chance=100, pause=0, sfx="content/sfx/sound/be/Fire Arrow.wav", sfx_special="content/chars/Sailor_Moon/hino_rei/Mars Flame Sniper.wav")       
 
    # We'll create alternate spells which use the same sprites for the magic
    # that enemy creatures use:
    Library.Skills.Fireball = MagicFighterAttackSkill("Fireball", attributes=['magic', 'fire'], damage=6, cost=0, range=3, sprite_impact=BattleSprite('fire 1', anchor=(0.5, 0.8)), pause=0.4, sfx="content/sfx/sound/be/fire.wav")
    Library.Skills.Aqua = MagicFighterAttackSkill("Aqua", attributes=['magic', 'water'], damage=6, cost=0, range=3, sprite_impact=BattleSprite('water 1', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/water.wav")
    Library.Skills.Tremor = MagicFighterAttackSkill("Tremor", attributes=['magic', 'earth'], damage=6, cost=0, range=3, sprite_impact=BattleSprite('earth 1', anchor=(0.5, 0.8)), pause=0.6, sfx="content/sfx/sound/be/earth.wav")

And you might want to put adding the actual skills off, until you've figure out elemental alignments and created more spells.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1546 on: January 30, 2014, 04:02:16 PM »
PS: There is a simbrothel 2 RPG maker game

Very impressive... their over three years of development was REALLY well spent. There are even mouse only controls that work almost everywhere an sh!tloads of content.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1547 on: January 30, 2014, 04:33:26 PM »
Now if only I was better writer

I've started filling in the gaps in girlsmeets, my writing is worse than yours BUT you should have told me that girlsmeets creation was so tedious (Like you did with BE Skills). One of the main points of the game design is to allow easy modding.

I'll be setting new rules and allow for a much simpler checking of traits, occupation and most importantly, random lines with the next update. It will count everywhere, not just girlsmeets...
Like what we're doing?

Offline CherryWood

  • Hero Member
  • *****
  • Posts: 643
Re: General Discussion
« Reply #1548 on: January 30, 2014, 05:14:59 PM »
I've started filling in the gaps in girlsmeets, my writing is worse than yours BUT you should have told me that girlsmeets creation was so tedious (Like you did with BE Skills). One of the main points of the game design is to allow easy modding.

I'll be setting new rules and allow for a much simpler checking of traits, occupation and most importantly, random lines with the next update. It will count everywhere, not just girlsmeets...
Tedious? Something like tagging is tedious, this was the opposite - too much thinking causing my head to hurt. I tried to make every line unique.
I admit that it is an insane idea to make variations for every personality, but I started it anyway because 1) I had a lot of lines like that to start with that I could just copy/paste and 2) It's really something I would personally enjoy in game, more that stuff like arena or slavetraining, but I didn't have a strength to continue for some time, so I am not really sure what to do with it....

Disposition values there are from some table I just made up, they don't follow any math logic. Fell free to do anything with these.

------------------
I'm trying to add two or three arena teams now, just to learn how to do it. (looks very easy so far, that's great) If they will work, I'll upload them soon.
I've seen some talk before arena matches. Can this be customised for unique teams?
« Last Edit: January 30, 2014, 05:39:50 PM by CherryWood »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1549 on: January 30, 2014, 05:39:09 PM »
Tedious? Something like tagging is tedious, this was the opposite - too much thinking causing my head to hurt. Every line should be unique here.

I don't really do unique, I just throw whatever comes to mind first. We need to get this to the Alpha stage and hopefully get more people on board...

You must have misunderstood me, what I meant be tedious wasn't writing content in itself, it is constant typing of:

if "trait" in chr.traits:

or if chr.disposition > 100:

or gm_chr(random.choice(["", "", ""])).

gm_chr will be g from now on. Everywhere, main girl of any event should be g, we'll simply redefine it all the time.

$gm_chr(random.choice(["", "", ""])) this will be replaced with this: $rc("", "", "")

if chr.disposition > 100 this with d(100)

if "trait" in chr.traits: this with ct("trait") and you can check any amount traits like $ct("Magic Talent", "Magic Gift") and it will return true if any girls has any of the traits...

I got sick of typing same things over and over again in an hour.

I admit that it is an insane idea to make variations for every personality, but I started it anyway because 1) I had a lot of lines like that to start with that I could just copy/paste and 2) It's really something I would personally enjoy in game, more that stuff like arena or slavetraining

I do some traits checks as well, we'll add/expand as we proceed. PS: If something I put in bugs you, just comment it out and leave a replacement and maybe the reason as well. I rewrote your Hiring procedure and will do so again after we start simulating the city.

Disposition values there are from some table I just made up, they don't follow any math logic. Fell free to do anything with these.

I glanced over your code so I got the general idea. I don't have any spreadsheets reader on this laptop right now anyway.

------------------
I'm trying to add two or three arena teams now, just to learn how to do it. (looks very easy so far, that's great) If they will work, I'll upload them soon.
I've seen some talk before arena matches. Can this be customised for unique teams?

Obviously, but it's inside Python code, not much harder than girlsmeets but you'll need to know where to look. We might make even that easier but only for the release version.
Like what we're doing?

Offline CherryWood

  • Hero Member
  • *****
  • Posts: 643
Re: General Discussion
« Reply #1550 on: January 30, 2014, 06:00:53 PM »
Oki, I understand.
I usually spend so much time on thinking out what to write/searching for images/figuring out how to make something work, that I'm not really bothered with writing something multiple times at all afterwards.


But too much simplification can make the code hard to read. Like, I'm used to it by now, but It was really hard for me to figure out how things work at first with all these classes around through multiple files.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1551 on: January 30, 2014, 06:17:50 PM »
But too much simplification can make the code hard to read. Like, I'm used to it by now, but It was really hard for me to figure out how things work at first with all these classes around through multiple files.

Old way will work just as it did before if that's your preference.

I usually spend so much time on thinking out what to write/searching for images/figuring out how to make something work, that I'm not really bothered with writing something multiple times at all afterwards.

Before I forget again and since you've said images, I've added some new options to the girls's show method:

Assumes girl is set to chr:

1) chr.show("nude", "generic inside", resize=(500, 400), exclude=["generic outside", "bla bla bla", "etc..."]) will exclude any of the tags in the list. I've already created a list of all main sex tags in initialization.rpy (closer to the end of the file). If you want/need to, create more lists there like for excluding all inside, outside and other categories that can be grouped together or we'll do it later as required. You can obviously just use exclude=main_sex_tags and it'll work.

2) chr.show("nude", "generic inside", resize=(500, 400), type="first_default"). Now type decides the logical order of a search, first default means that game will try to find a pic with ALL tags first, than try to find the pic with very first tag only AND only if that fails as well, go for the "profile" pic.

Other option for type that we have now is "any", game will try to find a pic with ANY one of the tags.

You can also use both exclude and type during the same search.
« Last Edit: January 30, 2014, 06:20:32 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1552 on: January 31, 2014, 03:33:11 AM »
Ok, I split items xml, they are in items xmls folder. Not sure about traits, items are easy to classify by slot type, but several traits xml probably will be unintuitive.

May I assume that we have more or less fresh version of the game in db?
« Last Edit: January 31, 2014, 03:37:22 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1553 on: January 31, 2014, 04:08:03 AM »
Ok, I split items xml, they are in items xmls folder. Not sure about traits, items are easy to classify by slot type, but several traits xml probably will be unintuitive.

Purrfect!

May I assume that we have more or less fresh version of the game in db?

From mid November of 2013.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1554 on: January 31, 2014, 05:16:35 AM »
Alright, I downloaded fresh copy from repository, and now I'm confused by file structure of rchars folder. Does it have other rules for tags and girls files? I have this one when I use the same structure that char folder has:
Quote
  File "game/script.rpy", line 79, in script
  File "game/script.rpy", line 138, in python
  File "game/library/classes - support.rpy", line 26, in python
  File "game/library/functions.rpy", line 46, in python
WindowsError: [Error 267] : u'C:\\RenPy\\Pytfall/game\\content/rchars/data_2k_tan.json\
« Last Edit: January 31, 2014, 05:33:52 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1555 on: January 31, 2014, 05:45:00 AM »
Alright, I downloaded fresh copy from repository, and now I'm confused by file structure of rchars folder. Does it have other rules for tags and girls files? I have this one when I use the same structure that char folder has:

I would expect same or similar Error with normal characters as well, game doesn't expect there to be any girls files in main rchars or chars folder. You need to create a new folder called something like windows_girls just as you would create one for Naruto to put data_Sakura.xml inside.
« Last Edit: January 31, 2014, 05:58:27 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1556 on: January 31, 2014, 05:55:25 AM »
Ah, I see. It's just I tried to download rchar folder you linked in repository thread, and it confused me even more, since you moved and combined some of tags files.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1557 on: January 31, 2014, 06:00:47 AM »
Ah, I see. It's just I tried to download rchar folder you linked in repository thread, and it confused me even more, since you moved and combined some of tags files.

I am not 100% sure that's your last copy btw, it's been a while since I've posted that as well so I don't remember if that's pre or post tagging.

Just a note, you no longer have to specify folder in girl files. Game doesn't use it (Doesn't really do any harm either, maybe for better compatibility with Alkion or something...). With that, any rules for acutally naming girl folders are gone so you can use proper names for folders like One Piece.
Like what we're doing?

Offline CherryWood

  • Hero Member
  • *****
  • Posts: 643
Re: General Discussion
« Reply #1558 on: January 31, 2014, 06:06:17 AM »
Custom arena fighters in arena_fighters.json don't use any attacks in combat (both old like Randalf and new ones - they just stand there doing nothing).
Maybe it's not linked with the new system you created?


Also because they get shown in aftermath report, support for battle pic would be nice (now they use portrait)
« Last Edit: January 31, 2014, 06:16:17 AM by CherryWood »

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1559 on: January 31, 2014, 06:17:19 AM »
Lol, now you actually can sell your last brothel and live on the streets  :D