| briosheje |
| | CITAZIONE (HiddenNebula @ 20/2/2015, 14:43) Il simulatore in cosa è fatto??? C++? Cioè è un applicativo proprio oppure un semplice file excell? Javascript. E' un po' scritto da schifo per gli standard a cui sono abituato, ma era giusto per avere qualcosa con cui divertirsi. Source: JS: CODICE var damages = { 33: { RT: 15301, SUP: 18001, RB: 7201, UPPERCUT: 12601 }, 30: { RT: 22501, SUP: 30242, RB: 10589, UPPERCUT: 21170 } };
var x, combos, playerLevel, crotaLevel;
var updatePlayerLevel = (function updatePlevel( callback ) { playerLevel = $('#plvl').val(); if (callback || typeof(callback) == 'function') { callback(); } return updatePlevel; }());
var updateCrotaLevel = (function updateClevel (callback) { crotaLevel = $('#crotalvl').val(); x = damages[crotaLevel]; combos = { FAIL: { formula: 0, description: "No attack." }, RT3: { formula: x.RT * 3, description: "RT RT RT" }, RT4: { formula: x.RT * 4, description: "RT RT RT RT" }, RTS: { formula: (x.RT * 3 + x.SUP), description: "RT RT RT SUPER" }, RB6: { formula: x.RB * 6, description: "RB RB RB RB RB RB... Seriously? are you serious? no..?" }, RB6S: { formula: parseInt(parseInt(x.RB * 6) + x.SUP), description: "RB RB RB RB RB RB SUPER... No, please. No." }, RB2U: { formula: parseInt((x.RB * 2 + x.UPPERCUT)*2), description: "RB RB RT[uppercut] RB RB RT[uppercut]" }, RB2US: { formula: parseInt(parseInt(x.RB * 2 + x.UPPERCUT)*2 + x.SUP), description: "RB RB RT[uppercut] RB RB RT[uppercut] SUPER <-- YEAH, SOUNDS GREAT!" }, RB2URT: { formula: parseInt((x.RB * 2 + x.UPPERCUT)*2) + x.RT, description: "RB RB RT[uppercut] RB RB RT[uppercut] RT" }, RB2URTS: { formula: parseInt((x.RB * 2 + x.UPPERCUT)*2) + x.RT + x.SUP, description: "RB RB RT[uppercut] RB RB RT[uppercut] RT SUPER <-- Greatest." }, RTSRTS3: { formula: (x.RT + x.SUP) * 3, description: "RT SUPER RT SUPER RT SUPERT <-- Exploit for dummies." } }; if (callback || typeof(callback) == 'function') { callback(); } return updateClevel; }());
// INIT dom. var combosHTMLs = ""; for (var i in combos) { combosHTMLs += "<option value=\""+i+"\">"+combos[i].description+"</option>"; }
$('.round').html(combosHTMLs);
// Dom listeners
$('#crotalvl').change(function (e) { updateCrotaLevel(); });
$('#plvl').change(function (e) { playerLevel = $(this).val(); });
$('#sim').on('click', function (e) { $('#result').html("-------------------------------<br />"); $('#result').append("CROTA'S BATTLE STARTED! <br />"); $('#result').append("<br />INIT::"); $('#result').append("<br />Player Level: "+playerLevel); $('#result').append("<br />Crota's Level: "+crotaLevel+"<br />"); $('#result').append("-------------------------------<br />"); var crotaHPs = 250000; for (var i = 1; i <= 5; i++) { if (crotaHPs <= 0) { $('#result').append("CROTA IS DEAD! <br />"); break; } else { var roundDamage = 0; var currentRound = "#r"+i+" select"; $('#result').append("-------------------------------<br />"); $('#result').append("--------ROUND "+i+"--------------<br />"); $('#result').append("-------------------------------<br />"); $('#result').append("Crota's HPs Left: "+crotaHPs+"<br /><br />"); $(currentRound).each(function(index){ if (typeof(index) !== 'undefined') { if ($(this).val() == 'FAIL') { $('#result').append("> player didn't attack for his own reasons. <br />"); } else { var damage = combos[$(this).val()].formula; crotaHPs -= damage; $('#result').append("> player dealt "+damage+" to crota using the comfort combo '"+combos[$(this).val()].description+"'... "+crotaHPs+" left.. <br />"); if (crotaHPs <= 0) { return false; } } } }); } } }); JS minimizzato (per comfort): CODICE var damages={33:{RT:15301,SUP:18001,RB:7201,UPPERCUT:12601},30:{RT:22501,SUP:30242,RB:10589,UPPERCUT:21170}},x,combos,playerLevel,crotaLevel,updatePlayerLevel=function e(r){return playerLevel=$("#plvl").val(),(r||"function"==typeof r)&&r(),e}(),updateCrotaLevel=function r(e){return crotaLevel=$("#crotalvl").val(),x=damages[crotaLevel],combos={FAIL:{formula:0,description:"No attack."},RT3:{formula:3*x.RT,description:"RT RT RT"},RT4:{formula:4*x.RT,description:"RT RT RT RT"},RTS:{formula:3*x.RT+x.SUP,description:"RT RT RT SUPER"},RB6:{formula:6*x.RB,description:"RB RB RB RB RB RB... Seriously? are you serious? no..?"},RB6S:{formula:parseInt(parseInt(6*x.RB)+x.SUP),description:"RB RB RB RB RB RB SUPER... No, please. No."},RB2U:{formula:parseInt(2*(2*x.RB+x.UPPERCUT)),description:"RB RB RT[uppercut] RB RB RT[uppercut]"},RB2US:{formula:parseInt(2*parseInt(2*x.RB+x.UPPERCUT)+x.SUP),description:"RB RB RT[uppercut] RB RB RT[uppercut] SUPER <-- YEAH, SOUNDS GREAT!"},RB2URT:{formula:parseInt(2*(2*x.RB+x.UPPERCUT))+x.RT,description:"RB RB RT[uppercut] RB RB RT[uppercut] RT"},RB2URTS:{formula:parseInt(2*(2*x.RB+x.UPPERCUT))+x.RT+x.SUP,description:"RB RB RT[uppercut] RB RB RT[uppercut] RT SUPER <-- Greatest."},RTSRTS3:{formula:3*(x.RT+x.SUP),description:"RT SUPER RT SUPER RT SUPERT <-- Exploit for dummies."}},(e||"function"==typeof e)&&e(),r}(),combosHTMLs="";for(var i in combos)combosHTMLs+='<option value="'+i+'">'+combos[i].description+"</option>";$(".round").html(combosHTMLs),$("#crotalvl").change(function(){updateCrotaLevel()}),$("#plvl").change(function(){playerLevel=$(this).val()}),$("#sim").on("click",function(){$("#result").html("-------------------------------<br />"),$("#result").append("CROTA'S BATTLE STARTED! <br />"),$("#result").append("<br />INIT::"),$("#result").append("<br />Player Level: "+playerLevel),$("#result").append("<br />Crota's Level: "+crotaLevel+"<br />"),$("#result").append("-------------------------------<br />");for(var e=25e4,r=1;5>=r;r++){if(0>=e){$("#result").append("CROTA IS DEAD! <br />");break}var R="#r"+r+" select";$("#result").append("-------------------------------<br />"),$("#result").append("--------ROUND "+r+"--------------<br />"),$("#result").append("-------------------------------<br />"),$("#result").append("Crota's HPs Left: "+e+"<br /><br />"),$(R).each(function(r){if("undefined"!=typeof r)if("FAIL"==$(this).val())$("#result").append("> player didn't attack for his own reasons. <br />");else{var R=combos[$(this).val()].formula;if(e-=R,$("#result").append("> player dealt "+R+" to crota using the comfort combo '"+combos[$(this).val()].description+"'... "+e+" left.. <br />"),0>=e)return!1}})}}); HTML (esclusa HEAD, BODY ecc.) : CODICE Crota's level: <br />
<select id="crotalvl"> <option value="30" selected>30</option> <option value="33">33</option> </select><br />
Player level: <br /> <select id="plvl"> <option value="30" disabled>30</option> <option value="31" disabled>31</option> <option value="32" selected>32</option> </select> <br />
<div id="r1"> <span class="r">Round 1:</span><br /> <select class="round" data-round="1.0"></select><br /> <select class="round" data-round="1.1"></select><br /> <select class="round" data-round="1.2"></select><br /> </div> <div id="r2"> <span class="r">Round 2:</span><br /> <select class="round" data-round="2.0"></select><br /> <select class="round" data-round="2.1"></select><br /> <select class="round" data-round="2.2"></select><br /> </div> <div id="r3"> <span class="r">Round 3:</span><br /> <select class="round" data-round="3.0"></select><br /> <select class="round" data-round="3.1"></select><br /> <select class="round" data-round="3.2"></select><br /> </div> <div id="r4"> <span class="r">Round 4:</span><br /> <select class="round" data-round="4.0"></select><br /> <select class="round" data-round="4.1"></select><br /> <select class="round" data-round="4.2"></select><br /> </div> <div id="r5"> <span class="r">Round 5:</span><br /> <select class="round" data-round="5.0"></select><br /> <select class="round" data-round="5.1"></select><br /> <select class="round" data-round="5.2"></select><br /> </div> <input type="button" value="simulate" id="sim"> <div id="result"> </div> jsfiddle live: http://jsfiddle.net/briosheje/b7b8b1md/9/<-- Ho aggiornato il fiddle aggiungendo RT singolo e doppio RT..
| | |
| |
|