Code: Select all
$ random_number = renpy.random.randint(1, 4)
if random_number==1:
"Effect 1"
elif random_number==2 or random_number==3 or random_number==4:
"Effect 2"
Code: Select all
$ random_number = renpy.random.randint(1, 4)
if random_number==1:
"Effect 1"
elif random_number==2 or random_number==3 or random_number==4:
"Effect 2"
That can get unruly.JQuartz wrote:Everything you asked for is doable though it'll be tough. To generate random result you can use the following method:Code: Select all
$ random_number = renpy.random.randint(1, 4) if random_number==1: "Effect 1" elif random_number==2 or random_number==3 or random_number==4: "Effect 2"
Code: Select all
def percentChance(chance):
if renpy.random()*100 < chance:
return True
return False
#Say a Poison spell has a 60% chance to inflict Poison.
"What spell do you want to cast?"
menu:
"Poison (5 MP)":
player.MP -= 5
if percentChance(60):
"Success! Enemy has been poisoned."
enemy.status = "Poison"
else:
"Enemy has not been poisoned."
jump enemyturn
"Never mind":
jump battlemenu
I see. Thanks for the suggested code to replace mine.Dusty wrote:That can get unruly.
This way sounds okay.Thaius wrote:I can give you the code and tell you what to do, leaving it to you to write the whole battle system,
Same here. Right now I'm totally free but not so once I recover from my injuries. So I plan to do some coding work while I am waiting for my injuries to recover. (Making games seems more productive to me compared to playing games...)Thaius wrote:the sooner the better on my end
I think you have not yet.Thaius wrote:Did I give you what I had done so far, or no?
I'm wheelchair bound so the most interesting thing I can do while I'm wheelchair bound is play the computer. But playing games all day long just seems to me to be unproductive (I still spend a lot of time to play though) so I thought while I'm still wheelchair bound, I better make a game.Thaius wrote:Excuse my curiosity, but injuries?
If I'm not mistaken the code given in the board you mentioned is in python so I can't fully understand it( which means I couldn't modify it to suit your project) so I think it better if you give me what you have.Thaius wrote:you can just take that or I can give you what I have.
Code: Select all
init:
$ m = Character('Me', color="#c8c8ff")
label start:
label battleSetup:
$ enemyHP = 100
$ playerHP = 100
$ enemyATK = 20
$ enemyDEF = 5
$ playerATK = 20
$ playerDEF = 7
$ playerMP = 50
$ enemyMP = 50
$ playerMAG = 30
$ enemyMAG = 30
$ playerMAGDEF = 5
$ enemyMAGDEF = 5
$ fire = 5
$ potion = 10
$ grenade = 3
label battleLoop:
menu:
"What will you do? HP:%(playerHP)s/MP:%(playerMP)s ------ Enemy HP: %(enemyHP)s"
"ATTACK":
"You attack"
$ tempNumber = playerATK - enemyDEF
"You do %(tempNumber)s damage!"
$ enemyHP -= tempNumber
"Magic":
menu:
"Fire - 5" if playerMP > 0:
$ fireATK = playerMAG - enemyMAGDEF
"You attack with fire for %(fireATK)s damage!"
$ enemyHP -= fireATK
$ playerMP -= 5
"Thunder - 5" if playerMP > 0:
$ thunderATK = playerMAG - enemyMAGDEF
"You attack with thunder for %(thunderATK)s damage!"
$ enemyHP -= thunderATK
$ playerMP -= 5
"Use item":
menu:
"Potion %(potion)s" if potion > 0:
"You heal 50 hp!"
$ playerHP += 50
$ potion -= 1
"Grenade %(grenade)s" if grenade > 0:
$ grenATK = playerATK - enemyDEF + 10
"You throw grenade for %(grenATK)s damage!"
$ enemyHP -= grenATK
$ grenade -= 1
if enemyHP < 1:
"You win!"
jump endBattle
"You take damage!"
$ tempNumber = enemyATK - playerDEF
"Hit for %(tempNumber)s damage!"
$ playerHP -= tempNumber
if playerHP < 1:
jump loseBattle
jump battleLoop
label endBattle:
"You rock!"
return
label loseBattle:
"You're defeated!"
return
Well if you can provide in numerical values that would be best but if you can't a estimation(high, low,etc) is okay as well.Thaius wrote:In terms of how much stats improve at each level up
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
$ 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(1.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))
ui.null(height=10)
ui.close()
config.overlay_functions.append(enemy_hp)
label mp_regeneration:
if playerMP>=playerMAXMP:
return
$ playerMP += 1
$ renpy.restart_interaction()
return
label start:
$ battle_on=True
label battleSetup:
pass
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
$ 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('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):
"Success! Enemy has been poisoned."
$ enemystatus = "Poison"
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)
ui.textbutton('Potion %(potion)s' % globals(), clicked=ui.jumps('potion'))
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
$ 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 battleLoop
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."
return
label loseBattle:
"You're defeated!"
return
Users browsing this forum: No registered users