Thaius' project.

Ideas and games that are not yet publicly in production. This forum also contains the pre-2012 archives of the Works in Progress forum.
Message
Author
JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: Thaius' project.

#31 Post by JQuartz »

Thaius wrote:Ah, okay. I hadn't realized you didn't play games like that. Aw, now I'm all sad... no Final Fantasy VII or Chrono Trigger... :(
Asceai wrote:Neither of those games contain only status-inducing magic. (which is what JQuartz was getting at, right?)
Ditto.
Thaius wrote:I figure the equation would involve the caster's magic level, the victim's magic defense level, and some percentage of the victim's max HP. I just need to figure out how.
This is the equation I made for poison:

Code: Select all

damage to victim HP= (((attackerMAG-victimMAGDF)*.5)+200*.005)*(victimMAXHP*0.05)
I don't really understand what the equation means but basically if the attacker's Magic is stronger by 50 points than the victims Magic defence, the damage would be 10% of MaxHp while at if the the attacker magic and victims magic defence is the same, it would be 5% of MaxHp and if the attacker magic is weaker by 50 points than the victims magic defence, the damage would be 2.5% of MaxHp. The max and min difference is set to 50 and -50.

I added a Sure Poison magic, which has 100% success rate so you can test the effect of poison status since the normal one doesn't always hit.
If you have anything that need to be modified don't hesitate to tell.

This is the code:

Code: Select all

init:
    $ m = Character('Me', color="#c8c8ff")
    
    $ battle_on=None
    
    $ level=1
    $ experience=0
    $ provided_experience=5
    $ level_up_experience=5
    $ enemy_name='Hostile Donut'
    $ enemyMAXHP=100
    $ enemyHP = 100
    $ playerMAXHP=100
    $ playerHP = 100
    $ enemyATK = 20
    $ enemyDEF = 5
    $ playerATK = 20
    $ playerDEF = 7
    $ playerMAXMP=50
    $ playerMP = 50
    $ enemyMP = 50
    $ playerMAG = 30
    $ enemyMAG = 30
    $ playerMAGDEF = 5
    $ enemyMAGDEF = 5
    $ enemystatus=None
    $ playerstatus=None
    $ fire = 5
    $ potion = 10
    $ grenade = 3
    
    
   
    python:
        def percentChance(chance):
            if renpy.random.randint(1,100) >= chance:
                return True
            return False
            
        def regenerate_mp():
            ui.timer(2.0, ui.callsinnewcontext("mp_regeneration"))
        config.overlay_functions.append(regenerate_mp) 
        
        
        
        def hp_and_mp():
            if battle_on:
                ui.frame(xpos=1.0, xanchor=1.0)
                ui.vbox()
                ui.bar(playerMAXHP,playerHP, xmaximum=150)
                ui.text("HP:   "+str(playerHP)+"/" +str(playerMAXHP))
                ui.null(height=10)
                ui.bar (playerMAXMP, playerMP,xmaximum=150)
                ui.text("MP:   " + str(playerMP) +"/"+ str(playerMAXMP))
                ui.close()
        config.overlay_functions.append(hp_and_mp)
        
        def enemy_hp():
            if battle_on:
                ui.frame(xpos=.5, xanchor=.5,ypos=.3)
                ui.vbox()
                ui.text(enemy_name)
                ui.bar(enemyMAXHP,enemyHP, xmaximum=150)
                ui.text("HP:   "+str(enemyHP)+"/" +str(enemyMAXHP))
                if not enemystatus:
                    ui.null(height=10)
                elif enemystatus=='Poison':
                    ui.text('Poisoned',color='#f00',size=10)
                ui.close()
        config.overlay_functions.append(enemy_hp)
label mp_regeneration:
    if playerMP>=playerMAXMP:
        return
    $ playerMP += 1
    $ renpy.restart_interaction()
    return
label start:
    "I travelled the plains of Renperia and stumbled upon a Hostile Donut!"
    "Let the battle begin!"
    $ provided_experience=5
    $ enemy_name='Hostile Donut'
    $ enemyMAXHP=100
    $ enemyHP = 100
    $ enemyATK = 20
    $ enemyDEF = 5
    $ enemyMP = 50
    $ enemyMAG = 30
    $ enemyMAGDEF = 5
    call battleSetup
    "Since I vanquished the monster, I ate the Donut. Delicious..."
    "Addicted to the taste of Hostile Donut, I search for another one to battle."
    "Alright, found one!"
    "Let the battle begin!"
    call battle_hostile_donut
    call battleSetup
    "I ate another donut. Maybe I should start a donut shop and name the shop, Monster Donuts..."
    
label battle_hostile_donut:
    $ provided_experience=5
    $ enemy_name='Hostile Donut'
    $ enemyMAXHP=100
    $ enemyHP = 100
    $ enemyATK = 20
    $ enemyDEF = 5
    $ enemyMP = 50
    $ enemyMAG = 30
    $ enemyMAGDEF = 5
    return

   
label battleSetup:
    $ battle_on=True


label new_round:
    if enemystatus == "Poison":
        call poison_effect_on_enemy
        if enemyHP <=0:
            "You win!"
            jump endBattle
    if playerstatus =="Poison":
        call poison_effect_on_player
        if playerHP <=0:
            "You're defeated!"
            jump loseBattle
label battleLoop:
    
    python:
        ui.vbox(xpos=.7, ypos=.5)
        ui.textbutton('Attack', clicked=ui.jumps('attack'))
        ui.textbutton('Magic', clicked=ui.jumps('magic'))
        ui.textbutton('Use Item', clicked=ui.jumps('item'))
        ui.close()
        
        ui.interact()

    
label attack:
    "You attack"
     
    $ tempNumber = playerATK - enemyDEF
    if percentChance(75):
        "Critical Hit!"
        $ tempNumber= playerATK-(enemyDEF/2)
    $ enemyHP -= tempNumber
    if enemyHP<=0:
        $ enemyHP=0
    "You do %(tempNumber)s damage!"
    if enemyHP < 1:
        "You win!"
        jump endBattle
    jump enemyturn
     
   
label magic:
    python:
        ui.vbox(xpos=.7, ypos=.5)
        ui.textbutton('Fire    5MP', clicked=ui.jumps('fire'))
        ui.textbutton('Thunder    5MP', clicked=ui.jumps('thunder'))
        ui.textbutton('Poison    5MP', clicked=ui.jumps('poison'))
        ui.textbutton('Sure Poison    5MP', clicked=ui.jumps('sure_poison'))
        ui.textbutton('Return', clicked=ui.jumps('battleLoop'))
        ui.close()
        ui.interact()
        
label fire:
    if playerMP <=4:
        "You don't have enough MP."
        jump magic
    $ fireATK = playerMAG - enemyMAGDEF
    $ playerMP -= 5
    $ enemyHP -= fireATK
    if enemyHP<=0:
        $ enemyHP=0
    "You attack with fire for %(fireATK)s damage!"
   
    
    if enemyHP <=0:
        "You win!"
        jump endBattle
    jump enemyturn
    
label thunder:
    if playerMP <=4:
        "You don't have enough MP."
        jump magic
    $ playerMP -= 5
    $ thunderATK = playerMAG - enemyMAGDEF
    $ enemyHP -= thunderATK
    if enemyHP<=0:
        $ enemyHP=0
    "You attack with thunder for %(thunderATK)s damage!"
    
    
    if enemyHP <=0:
        "You win!"
        jump endBattle
    jump enemyturn
    

label poison:
    if playerMP <=4:
        "You don't have enough MP."
        jump magic
    
    
    $ playerMP -= 5
    if percentChance(60):
        $ enemystatus = "Poison"
        "Success! Enemy has been poisoned."
        
    else:
        "Enemy has not been poisoned."
    if enemyHP<=0:
        $ enemyHP=0
    if enemyHP <=0:
        "You win!"
        jump endBattle
    jump enemyturn

label sure_poison:
    if playerMP <=4:
        "You don't have enough MP."
        jump magic
    
    
    $ playerMP -= 5
    if percentChance(0):
        $ enemystatus = "Poison"
        "Success! Enemy has been poisoned."
        
    else:
        "Enemy has not been poisoned."
    if enemyHP<=0:
        $ enemyHP=0
    if enemyHP <=0:
        "You win!"
        jump endBattle
    jump enemyturn
           
label item:
    python:
        ui.vbox(xpos=.7, ypos=.5)
        if potion>=1:
            ui.textbutton('Potion    %(potion)s' % globals(), clicked=ui.jumps('potion'))
        if grenade>=1:
            ui.textbutton('Grenade    %(grenade)s' % globals(), clicked=ui.jumps('grenade'))
        ui.textbutton('Return', clicked=ui.jumps('battleLoop'))
        ui.close()
        ui.interact()

label potion:
    $ playerHP += 50
    if playerHP>=playerMAXHP:
        $ playerHP=playerMAXHP
    $ potion -= 1
    "You heal 50 hp!"
    if enemyHP<=0:
        $ enemyHP=0
    if enemyHP <=0:
        "You win!"
        jump endBattle
    jump enemyturn
                
label grenade:
    if grenade<=0:
        "You don't have any grenade."
        jump item
    $ grenATK = playerATK - enemyDEF + 10
    $ enemyHP -= grenATK
    $ grenade -= 1
    if enemyHP<=0:
        $ enemyHP=0
    "You throw grenade for %(grenATK)s damage!"
    
    if enemyHP <=0:
        "You win!"
        jump endBattle
    jump enemyturn
        
    
  

  
label enemyturn:
    "You take damage!"
    $ tempNumber = enemyATK - playerDEF
    $ playerHP -= tempNumber
    "Hit for %(tempNumber)s damage!"
  

    if playerHP < 1:
        jump loseBattle
    jump new_round
label endBattle:
    
    "You rock!"
    $ experience+=provided_experience
    "You gained %(provided_experience)d experience points."
    if experience>=level_up_experience:
        $ level+=1
        $ level_up_experience=level_up_experience*2
        $ level_up_experience="%d" % level_up_experience
        $ level_up_experience=int(level_up_experience)
        "You gained a level!"
    $ placeholdervariable=level_up_experience-experience
    "You need another %(placeholdervariable)d experience points to reach the next level."
    $ battle_on=None
    $ enemystatus=None
    

    return

label loseBattle:
  "You're defeated!"
  return 
  
label poison_effect_on_enemy:
    $ placeholder_variable=playerMAG-enemyMAGDEF
    if placeholder_variable<=-50:
        $ placeholder_variable=-50
    elif placeholder_variable>=50:
        $ placeholder_variable=50
    if placeholder_variable<=0:
        $ placeholder_variable=placeholder_variable*0.5
    $ placeholder_variable=(placeholder_variable*4)+200
    $ placeholder_variable=placeholder_variable*0.005
    $ placeholder_variable2=enemyMAXHP*0.05
    $ placeholder_variable=placeholder_variable*placeholder_variable2
    $ placeholder_variable="%d" % placeholder_variable
    $ placeholder_variable=int(placeholder_variable)
    if placeholder_variable<=0:
        $ placeholder_variable=1
    $ enemyHP-=placeholder_variable
    if enemyHP<=0:
        $ enemyHP=0
    "%(enemy_name)s loses %(placeholder_variable)d HP due to poison!"
    
    return
    
label poison_effect_on_player:
    $ placeholder_variable=enemyMAG-playerMAGDEF
    if placeholder_variable<=-50:
        $ placeholder_variable=-50
    elif placeholder_variable>=50:
        $ placeholder_variable=50
    if placeholder_variable<=0:
        $ placeholder_variable=placeholder_variable*0.5
    $ placeholder_variable=(placeholder_variable*4)+200
    $ placeholder_variable=placeholder_variable*0.005
    $ placeholder_variable2=playerMAXHP*0.05
    $ placeholder_variable=placeholder_variable*placeholder_variable2
    $ placeholder_variable="%d" % placeholder_variable
    $ placeholder_variable=int(placeholder_variable)
    if placeholder_variable<=0:
        $ placeholder_variable=1
    $ playerHP-=placeholder_variable
    if playerHP<=0:
        $ playerHP=0
    "You lose %(placeholder_variable)d HP due to poison!"
    return 
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: Thaius' project.

#32 Post by Jake »

Asceai wrote:
Thaius wrote:Final Fantasy VII or Chrono Trigger
Neither of those games contain only status-inducing magic. (which is what JQuartz was getting at, right?)
Slow or Haste did something else other than change status...?
Server error: user 'Jake' not found

LVUER
King of Lolies
Posts: 4538
Joined: Mon Nov 26, 2007 9:57 pm
Completed: R.S.P
Location: Bandung, West Java, Indonesia
Contact:

Re: Thaius' project.

#33 Post by LVUER »

Slow, haste, berserk, poison, confuse, blind? Aren't those status magic commonly found in those two games?

Dusty
Regular
Posts: 126
Joined: Fri Jul 25, 2008 11:51 pm
Contact:

Re: Thaius' project.

#34 Post by Dusty »

"Only status magic" is what was said. Stuff like Fire isn't status magic, so Final Fantasy 7 does not contain "only status magic."

Umm... so, yeah...? I don't quite get what you were trying to say. :|

Thaius
Regular
Posts: 44
Joined: Mon Feb 02, 2009 6:52 pm
Contact:

Re: Thaius' project.

#35 Post by Thaius »

I thought he was talking about status inducing magic in general, not specifically a battle system that only consists of it (the kind I was considering). I don't think a game like that exists: I've never run into a game without directly offensive magic. Though if any of you know of one, I could be rather curious as to how it works.

The poison formula looks good. Of course in the final system it should have a probability, probably connected to the player's magic skill.

I'm sorry it's been so long, but I soon plan on developing what spells will be used and how they will work. You should have a fully developed battle system soon, or at least the concepts of one of course. Up to you to code. :)
~ If logic is nothing more than believing in fact, are we truly thinking logically or just blindly believing what seems to be true?

JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: Thaius' project.

#36 Post by JQuartz »

Thaius wrote:You should have a fully developed battle system soon, or at least the concepts of one of course.
I need instructions for a fully developed battle system so you need to tell me how the battle system should be like. I already feel the current battle system is already fully developed. So unless you want it to be modified, I don't think I know how to make it better.

Anyway, if you feel I can't really help you out, you can always look for another coder. I don't mind you using what I already made without putting me in the credits. I just wanted to help you out with your school assignment. Good luck on your project.
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

Thaius
Regular
Posts: 44
Joined: Mon Feb 02, 2009 6:52 pm
Contact:

Re: Thaius' project.

#37 Post by Thaius »

I am still perfectly fine with you coding. If you have a reason to stop after a certain point in time or something, feel free to: I know that I said your work would be done by the 24th, and I can respect that. I'm not paying you or anything, so I won't make you work against your work or in a situation that would be inconvenient for you. I'm asking enough of you as it is. I'm still confident that you can help me: you've done a great job so far.

What I meant by "fully developed battle system" is that there are still some ideas I want to try out, and of course there are many more spells, items and such that will be in the final product than what we have now. The basic build is fully developed, yes, but the battle system as a whole is not complete. Sometime tonight I should be posting some more of the ideas I have for it, as well as a list of spells that should be in the demo and some other things. I'm hoping for a polished demo for the due date: shouldn't be hard, but there are a few more things that have to be added. I'm sorry if this puts pressure on you: I was hoping to have this done sooner, but of course my life never turns out exactly how I expect it to. I apologize.

You should have some more information within an hour of this posting. Thank you.
~ If logic is nothing more than believing in fact, are we truly thinking logically or just blindly believing what seems to be true?

Thaius
Regular
Posts: 44
Joined: Mon Feb 02, 2009 6:52 pm
Contact:

Re: Thaius' project.

#38 Post by Thaius »

JQuartz wrote:
Thaius wrote:You should have a fully developed battle system soon, or at least the concepts of one of course.
I need instructions for a fully developed battle system so you need to tell me how the battle system should be like. I already feel the current battle system is already fully developed.
Whoa, I just realized what happened here. I was not stating my expectations. What I was meaning to say was that I am working on the details and instructions and should have them to you soon. I'm sorry for the misunderstanding: I should have been more clear. I do not expect anything else from you until I give you something to work with, which you should have shortly. Again, sorry for the misunderstanding.
~ If logic is nothing more than believing in fact, are we truly thinking logically or just blindly believing what seems to be true?

JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: Thaius' project.

#39 Post by JQuartz »

Thaius wrote:I'm sorry if this puts pressure on you: I was hoping to have this done sooner, but of course my life never turns out exactly how I expect it to. I apologize.
No pressure felt. No need to apologize.
Thaius wrote:You should have some more information within an hour of this posting. Thank you.
Okay. But if you already sent them, you have to send them again since I didn't get anything yet.
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

Thaius
Regular
Posts: 44
Joined: Mon Feb 02, 2009 6:52 pm
Contact:

Re: Thaius' project.

#40 Post by Thaius »

Yeah... lol I didn't quite make it. I'm about to head to class right now, and it was getting to like 2 in the morning, and getting 6 hours of sleep on a school night is bad enougH: I couldn't finish it. Sorry: I'll have it to you today.
~ If logic is nothing more than believing in fact, are we truly thinking logically or just blindly believing what seems to be true?

JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: Thaius' project.

#41 Post by JQuartz »

Thaius wrote:I couldn't finish it. Sorry: I'll have it to you today.
Take your time. I just wanted to know if you had already given me the data.
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

Thaius
Regular
Posts: 44
Joined: Mon Feb 02, 2009 6:52 pm
Contact:

Re: Thaius' project.

#42 Post by Thaius »

I guess I just want to get it to you as soon as possible, for both our sakes: I need it soon, and I don't want to pressure you, considering you were kind enough to volunteer your services in the first place.

I apologize: today went pretty much every way besides the way I expected it to. As a result, the details are not yet finished. Tomorrow is a deadline I'm setting for myself: I'll have it to you sometime before I go to bed tomorrow.
~ If logic is nothing more than believing in fact, are we truly thinking logically or just blindly believing what seems to be true?

JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: Thaius' project.

#43 Post by JQuartz »

Thaius wrote:Tomorrow is a deadline I'm setting for myself: I'll have it to you sometime before I go to bed tomorrow.
Okay. Good luck.
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

Thaius
Regular
Posts: 44
Joined: Mon Feb 02, 2009 6:52 pm
Contact:

Re: Thaius' project.

#44 Post by Thaius »

I apologize for how long this has taken me. This semester has gotten crazier and crazier. However, thankfully, due to some changes in the course I’m taking and its requirements, the pressure is mostly off. Essentially, the full game does not need to be complete, but I will need a complete particular battle scenario or two ready before the 22nd. I’m sorry to give you all this information at such short notice, but at least not as much work is needed. I will give you what I’ve thought up for the battle system as a whole, then explain how much of it will be needed for this project. So here it is. Keep in mind that if something doesn’t work or is just a bad idea, feel free to let me know. Also, a lot of this information is pretty standard for turn-based systems, but since I don’t really know your game library or anything I explain them anyway.

Note: I’ve noticed that other people have been on here besides me and JQuartz. This being my first time working like this, I didn’t expect that. If any of you have any ideas, or if you think something I’m saying won’t work, feel free to let me know. Your input is appreciated.


Random Stuff:

I’m thinking that potions should be downgraded to restore 30 HP. Most games like this potions restore about a third of the player’s starting HP, and more powerful potions, such as Hi-potions, fill the gap as the player’s MAXHP rises. So yeah: change the potions to 30.

A measurement for accuracy (ACC) should be added both to the player and to the enemy. This makes it possible to miss the target when attacking and allows for the Blind status spell (more on that later). Of course, enemies and players alike should miss rarely unless under a status effect that induces lesser results.

Also, there should be a submenu in the Magic menu: one for offensive magic, one for supportive magic, and one for status inducing magic. The spells are broken down into their categories later in this explanation.

Also, I mentioned the idea before, but am not sure if it was implemented. The idea was basically that if the player is almost out of MP and uses a spell that costs more MP than they have left, their MP dips into the negative numbers and they will be unable to use magic until natural MP regeneration brings them back into the positive numbers. They will also have particular status effects put on them during this time. If this idea is not currently implemented, I would like it to be. The status effects that would be given are stop/slow and blind (again, more explanation later). No item can rush this process: it must happen through natural MP regeneration.

I am hoping to get the character drawings required for the demo in time for the project to be turned in. This may not happen, in which case we will have to make do without visuals for now. If it does, however, then I will give them to you for insertion. I’ll give you more details on that if/when I get the sprites.

On a similar note, it will have to be possible to have multiple people in your party, as well as multiple enemies. There should be able to be three controllable allies in battles, and… well how many enemies could you fit in one battle?

I’m thinking that critical hits should be much, much more rare. Maybe 10%. And maybe they should do more damage, like 1.5 the damage that a normal attack causes.


Time vs. Turns:

One thing I’ve been thinking about is an inconsistency between the time-based aspects (such as MP regeneration) and the turn-based aspects of the system. For instance, since the MP regeneration is based on time, the player could just sit there and let MP regenerate and the enemy would do nothing. This, of course, takes any semblance of challenge from the game. As a result, one of two actions must be taken. The easiest would be to change it so that gradual things such as MP regeneration take place turn-by-turn, rather than over time. For instance, rather than gaining 1 MP every couple seconds, perhaps the player would gain 3 MP every turn: more as he levels up. Essentially, it would work in a similar way to how the poison spell currently does: it takes affect each turn, rather than over time. That would be the easiest way to fix this.

The other way would be more complex, but may turn out better in the end. Essentially, rip off the Active Time Battle System from Final Fantasy and base it all on time. I can explain it if you’re not familiar with it (I don’t know what games you’ve played): essentially it’s all based on time rather than turns. I don’t know if it is possible (though I imagine it is, considering MP regeneration is currently time-based), but it would probably allow for more options and strategy in the end. Let me know what you think.


Vulnerability

Okay, here’s me idea as to exactly how elemental magical damage will be given. Each enemy (not the player) is given a rating for each element: 0 means they are immune, 1 means they take normal magic damage, 2 means they are vulnerable to it. Each enemy will have this rating. This allows for each elemental magic attack to be multiplied by the enemy’s elemental weakness. For instance, an enemy that is extremely weak to fire would have some kind of label (you can decide the exact term, but for illustration purposes I’ll refer to it as enemyVULFIRE) that is set at 2, and the enemy would take fire damage based on this equation:

playerMAG – enemyMAGDEF x enemyVULFIRE

So the enemy would have a measure of elemental vulnerability in their profile (or whatever the labeling is called), and that would be referenced to multiply the damage. Thus, an enemy that is vulnerable to fire would take twice the damage from it. Make sense? Sorry I’m not all that good at explaining it.

This is how different elements would make different amounts of damage. The basic elemental attacks will have the same amount of damage (the current equations for it are fine), but different damage will occur based on the monster’s MAGDEF and it’s elemental vulnerability.

Each enemy would have some kind of elemental vulnerability level. This same concept would also be applied to status effects: for instance, an enemy with strong defense against poison would be less likely to be affected by it: essentially, his poison vulnerability level would affect his chances to be poisoned.

Basic idea behind all this: every enemy has a level of vulnerability for each individual status effecting spell as well as every elemental spell. It will affect how much damage each element does to them and the likelihood that they will be affected by a given status effect. Ask me if you do not understand or have any questions.

To add to that, here is a list of the elements:
Fire
Lightning
Water
Earth
Air

Many spells, both offensive and defensive, will be based on these. I may incorporate some sort of system where certain elements provide more effective defense from certain attacks: for instance, a water-based defense spell would fully protect from a fire-based attack, whereas an air-based defensive spell would not defend as well from a fire-based attack. Just throwing that thought out there: don’t worry about it for now.


List of Spells

I am compiling a list of the spells that will appear in the game and their desired affects, attributes, and damage. Some spells will, of course, be gained throughout the game, either by leveling up or by completing sidequests (as to exactly how these sidequests, or mission progression for that matter, will be integrated into the dialogue and such of the game, I’m still working on that: it won’t be needed for this demo though). For now, however, I will simply give you a list of spells that will be needed for the demo, as well as their necessary data. For the purposes of the list, I’ll refer to the previously discussed elemental vulnerability as “enemyVUL.” And yes, I know that the elements of the basic elemental powers are obvious, but whatever: proper list and all. Once all this is put in, I’ll test it thoroughly to make sure it all works.

There is one spell for each element. At this stage, the low-level ones will be fine, so keep the same stuff for those, adding whatever elements are not there. The one change that has to be made to them is the addition of the Vulnerability into the damage equations. I am considering heightening their MP cost slightly, to 6 or 7 perhaps, but I’ll have to test it more to make decisions like that. If you could go ahead and change them to 6, I’ll test it out.

Those are fine for the offensive spells for now. Now for the status effects that should be in the demo.

Poison:

Keep the equation you have. It works fine. Of course, the true poison shouldn’t be in the final system, but thanks: it definitely made testing it easier, lol. Keep it on hand: it may be useful for later in the game or something as well. For now, keep the poison equation, but add in something similar to the vulnerability concept: essentially, something that allows for chances to be improved or impaired based on the enemy. Also, I am not sure how this is set at the moment, but have poison last for 10 turns (which of course will be longer than most battles until the enemies get stronger).

Stop/Slow:

If the system remains based on turns, this spell will be called Stop. It will disallow the enemy from taking it’s next turn. However if it is changed to a time-based system, the spell will be Slow, and it will temporarily slow down the meter (to 75% of its normal speed) that dictates how often he can take turns. This would last for 10 turns. Tentatively give this spell a 4 MP cost and a high likelihood of success (70% chance or so, perhaps affected by MAG). Tentatively. I’ll test it and see.

Brainwash:

This spell drains the target’s MP. Start by taking away 4 MP from the target per turn. If it’s time-based, take 1 MP for every 2 seconds. This effect will last for 10 turns and will cost 4 MP. High likelihood of success. Of course, MP will not regenerate during this effect.

Blind:

This spell lowers the target’s accuracy, making it very likely to miss its target when attacking. It does not affect magical attacks. This effect lasts 5 turns and costs 4 MP. It should have a high likelihood of success and reduce the target’s ACC to 40% of its original ACC number.

Silence:

This spell disables the target’s ability to use magic. This lasts 5 turns and costs 5 MP. It should have a high likelihood of success.

Now here’s the thing about all these status effects. The likelihood of success should be based on the target’s MAGDEF. So, somehow, the target’s magic defense will affect the likelihood that they will be affected. Perhaps something so simple as to subtract their MAGDEF from the spell’s percentage of success. Also, their likelihood should somehow be connected to the player’s MAG rating: basically, the higher a character’s MAG, the more likely their status spell will be implemented. Perhaps adding their MAG to the spell’s likelihood. If you come up with better equations, please implement them and let me know.

There are also a couple of supportive spells. Here is the list of those that will be in the demo.

Cure:

This will restore HP to the caster. The recovered amount is any random number between 30 and 40.

Shield:

This spell protects the target by halving the damage taken by physical attacks. It should cost 4 MP and last for either 5 turns or 5 attacks: whichever comes first. It does not affect damage taken from magical attacks.


Enemies:

Different kinds of enemies will be vulnerable to different elements. For instance, a flying enemy would be vulnerable to air attacks, whereas something like fire or water just deals normal damage and ground-based earth attacks do no damage at all. This is something that will not really affect the demo in any big way, but there’s the basic idea.

I will have particular enemies chosen for the scenarios in the demo itself, with particular attributes and such.

Here’s one thing I ask, if possible. If you could make up a couple different enemies (different kinds of Hostile Donuts I guess, lol) and give them some of these different attributes I’ve been talking about, that would be great: that way I could test things a bit more thoroughly. But if you can’t that’s fine: I should be able to get the job done with just the battles already coded in if necessary.

Here’s where things get tricky. The behavior of the enemies needs to be controlled somehow. It may not be as hard as I’m imagining it, but basically they should be able to use magic and items as necessary, but of course they cannot just use them liberally or they would completely own. But there should be some system that allows them to use items and spells in certain situations, or maybe even just set up some kind of pattern. Items should not be used often by enemies, but some enemies will use spells as their main form of attack. But I am getting ahead of myself: don’t worry about this for the demo. Basically, I just want the enemies to be capable of a tad bit more than simply attacking over and over again. But for the demo, keep it simple: maybe just throw an occasional spell or two into the enemies’ attack pattern or something. :)


Items:

There will be plenty of items in the final build, but for the demo we can just keep it simple. I mentioned already that I want to try it with the potions restoring only 30 HP. The following is a list of the items that should be in the demo. If you think of anything else that should be there, or any problems with the item’s functions, or anything at all really, let me know. And yes, I do plan on figuring out better names for the defense/attack affecting items.

Potion:
Restore 30 HP to target.

Antidote:
Cures poison.

Adrenaline:
Cures slow. This would only exist in a time-based system, as items cannot be used if a turn is lost with Stop in a turn-based system.

Eye Drops:
Cures blind.

Caffeine (pick-up bean?):
Cures brainwash.

Defense Up:
Raises target’s defense by 50%.

Defense Down:
Lowers target’s defense by 50%.

Attack Up:
Raises target’s attack by 50%.

Attack Down:
Lowers target’s attack by 50%.

I’ll consider that good for now. There will be many more items in the final build, with much more diversity, but for the demo this will be fine. Again, if you have any questions (or you just need to tell me that one or more of these names are stupid), let me know.


I think that wraps it up. I’ll be working on the stats and abilities of different characters and enemies. I should have that stuff to you sometime soon after I check out the updates battle system. Of course if something was unclear or you have questions or suggestions, please let me know. Thank you, and good luck.
~ If logic is nothing more than believing in fact, are we truly thinking logically or just blindly believing what seems to be true?

JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: Thaius' project.

#45 Post by JQuartz »

Okay, give me around 4 days time since tomorrow is Easter and I'm kind of busy. Today is almost over so I can only do it on Monday.

Also, the player units don't have elemental vulnerability, right? They'll take 1.0 damage no matter what the element is, correct?
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

Post Reply

Who is online

Users browsing this forum: No registered users