diff --git a/RPG.rb b/RPG.rb index 44f735a..ca5d541 100755 --- a/RPG.rb +++ b/RPG.rb @@ -56,18 +56,14 @@ "制作","「#みんなでゲームを作ろう」の会"] battleselect = ["攻撃","アイテム","逃げる"] -attack = ["剣技","魔法"] -sword = [""] #攻撃名 -sworddetail = [[]] #攻撃の詳細 - -magic = [""] #魔法名 -magicdetail = [[]] #魔法の詳細 +attack = ["スラッシュ"] #攻撃名 +attackdetail = [[1,0,0]] #攻撃の詳細 monster = ["スライム","デーモンビースト","黒い影","\e[93mゴールデンスライム"] -enemy = [[12,12,8,8,4,0,3,10,8,1,3,"突進","Error"],[15,15,5,5,10,0,5,25,15,1,7,"突進","Error"],[8,8,15,15,0,8,20,35,25,3,13,"Error","闇の刃"], - [12,12,20,20,6,0,30,8,8,1,30,"突進","Error"]] +enemy = [[12,12,8,8,4,0,3,10,8,1,3,"突進","Error"],[15,15,5,5,10,0,5,25,15,1,7,"突進","Error"], + [8,8,15,15,0,8,20,35,25,3,13,"Error","闇の刃"],[12,12,20,20,6,0,30,8,8,1,30,"突進","Error"]] status = [] #[名前、性別、一人称etc.] @@ -183,12 +179,12 @@ data = [] if rand(((enemy[probability][4]*1.5).round) + 1) < rand(enemy[probability][5] + 1) data << enemymagic(probability,monster,enemy,ability,current) - if rand(enemy[probability][8]*2 + enemy[probability][7] + (enemy[probability][9]/2).round) > rand(((ability[7]*2 + ability[8] + (ability[9]/2).round)/2).round) + if rand(enemy[probability][8]*2 + enemy[probability][7] + (enemy[probability][9]/2).round) > rand(((ability[5]*2 + ability[5] + (ability[7]/2).round)/2).round) return data end else data << enemyattack(probability,monster,enemy,ability,current) - if rand(enemy[probability][8]*2 + enemy[probability][7] + (enemy[probability][9]/2).round) > rand(((ability[7]*2 + ability[8] + (ability[9]/2).round)/2).round) + if rand(enemy[probability][8]*2 + enemy[probability][7] + (enemy[probability][9]/2).round) > rand(((ability[5]*2 + ability[6] + (ability[7]/2).round)/2).round) return data end end @@ -196,17 +192,18 @@ end def process1(data) - if data[0] == 0 + if data[0][0] == 0 puts("攻撃失敗") - elsif data[0] == "他" + elsif data[0][0] == "他" + data[0][0] = 0 return data else - printf("%dダメージ",data) + printf("%dダメージ\n",data[0][0]) end return data end -def battle(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) +def battle(probability,monster,enemy,ability,current,item,status,nani,lv,g,attack,attackdetail,battleselect) printf("%s\e[mが現れた\n",monster[probability]) print("戦闘") dot2(0.01,28) @@ -221,57 +218,57 @@ if ability[5] < enemy[probability][7] data = enemyturn(probability,monster,enemy,ability,current) process1(data) - current[0] -= data[0] - enemy[probability][2] -= data[1] - enemy[probability][0] -= data[2] + current[0] -= data[0][0] + enemy[probability][2] -= data[0][1] + enemy[probability][0] -= data[0][2] - damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) + damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,attack,attackdetail,battleselect) process1(data) - enemy[probability][0] -= data[0] - current[2] -= data[1] - current[0] -= data[2] + enemy[probability][0] -= data[0][0] + current[2] -= data[0][1] + current[0] -= data[0][2] elsif ability[5] = enemy[probability][7] if 0 == rand(2) - damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) + damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,attack,attackdetail,battleselect) process1(data) - enemy[probability][0] -= data[0] - current[2] -= data[1] - current[0] -= data[2] + enemy[probability][0] -= data[0][0] + current[2] -= data[0][1] + current[0] -= data[0][2] data = enemyturn(probability,monster,enemy,ability,current) process1(data) - current[0] -= data[0] - enemy[probability][2] -= data[1] - enemy[probability][0] -= data[2] + current[0] -= data[0][0] + enemy[probability][2] -= data[0][1] + enemy[probability][0] -= data[0][2] else data = enemyturn(probability,monster,enemy,ability,current) process1(data) - current[0] -= data[0] - enemy[probability][2] -= data[1] - enemy[probability][0] -= data[2] + current[0] -= data[0][0] + enemy[probability][2] -= data[0][1] + enemy[probability][0] -= data[0][2] - damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) + damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,attack,attackdetail,battleselect) process1(data) - enemy[probability][0] -= data[0] - current[2] -= data[1] - current[0] -= data[2] + enemy[probability][0] -= data[0][0] + current[2] -= data[0][1] + current[0] -= data[0][2] end elsif ability[5] > enemy[probability][5] - damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) + damage = myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,battleselect) process1(data) - enemy[probability][0] -= data[0] - current[2] -= data[1] - current[0] -= data[2] + enemy[probability][0] -= data[0][0] + current[2] -= data[0][1] + current[0] -= data[0][2] data = enemyturn(probability,monster,enemy,ability,current) process1(data) - current[0] -= data[0] - enemy[probability][2] -= data[1] - enemy[probability][0] -= data[2] + current[0] -= data[0][0] + enemy[probability][2] -= data[0][1] + enemy[probability][0] -= data[0][2] end end end @@ -280,7 +277,7 @@ def enemymagic(probability,monster,enemy,ability,current) data = [] if not enemy[probability][2] == 0 - printf("%sの攻撃\n",monster[probability]) + printf("%s\e[mの攻撃\n",monster[probability]) mp = enemy[probability][3]/10.round + rand(3) if mp > enemy[probability][2] mp = enemy[probability][2] @@ -292,7 +289,7 @@ data << 0 return data else - return [0,0,0] + return [[0,0,0]] end end @@ -306,21 +303,24 @@ return data end -def myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) +def myturn(probability,monster,enemy,ability,current,item,status,nani,lv,g,attack,attackdetail,battleselect) data = [] status(status,ability,current,nani,lv,g) select = question("行動…",battleselect) if select == "攻撃" - if question("攻撃…",attack) == "剣技" - select = puery("剣技…",sword) - damage = ability[probability][4] * swoeddetail[0][0] - ((enemy[probability][6] / 2).round) - if rand(enemy[probability][8]*2 + enemy[probability][7] + (enemy[probability][9]/2).round) > rand(((ability[probability][7]*2 + ability[probability][8] + (ability[probability][9]/2).round)/2).round) - printf("%s!",sword) - data << damage - else - data << 0 - end + select = query("攻撃…",attack) + damage = ability[2] * attackdetail[select][0] - ((enemy[probability][6] / 2).round) + if rand(enemy[probability][8]*2 + enemy[probability][7] + (enemy[probability][9]/2).round) > rand(((ability[probability][5]*2 + ability[probability][6] + (ability[probability][7]/2).round)/2).round) + printf("%s!",attack[select]) + data << damage + else + data << 0 end + data << attackdetail[select][1] + data << attackdetail[select][2] + x = [] + x << data + return x end end @@ -398,8 +398,8 @@ select = question("どこに探索に行きますか",area) if select == "ポルタ平原" sleep(rand(3)) - probability = encounter([0]*75 + [1]*150 + [2]*5 + [3]*5) - game = battle(probability,monster,enemy,ability,current,item,status,nani,lv,g,sword,sworddetail,magic,magicdetail,battleselect) + probability = encounter([0]*75 + [1]*15 + [2]*500 + [3]*5) + game = battle(probability,monster,enemy,ability,current,item,status,nani,lv,g,attack,attackdetail,battleselect) if 0 == game #GAMEOVREのメソッド diff --git a/zikkengazou.png b/zikkengazou.png index e16123f..34e3cdb 100644 --- a/zikkengazou.png +++ b/zikkengazou.png Binary files differ diff --git "a/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232.xcf.xz" "b/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232.xcf.xz" new file mode 100644 index 0000000..15a554c --- /dev/null +++ "b/\345\220\215\347\247\260\346\234\252\350\250\255\345\256\232.xcf.xz" Binary files differ