More stuff implemented.

This commit is contained in:
Eric Fredricksen
2010-06-24 22:27:31 -07:00
parent 665148d2ba
commit add8b2cf6c
5 changed files with 66 additions and 62 deletions
+19
View File
@@ -1,3 +1,22 @@
// TODO These code bits don't really belong here.
var randseed = Math.floor(Math.random() * 0xFFFFFFFF);
function Random(n) {
return Rand32Rough() % n;
}
function Rand32Rough() {
// http://www.merlyn.demon.co.uk/js-randm.htm#MR
var T32 = 0x100000000;
var constant = 134775813;
var X = constant * randseed + 1;
return (randseed = X % T32);
}
var K = {}; var K = {};
K.Spells = [ K.Spells = [
+31 -34
View File
@@ -172,7 +172,7 @@ function InterplotCinematic() {
Q('task|2|You awake in a friendly place, but the road awaits'); Q('task|2|You awake in a friendly place, but the road awaits');
break; break;
case 2: case 2:
var nemesis = ImpressiveGuy; var nemesis = ImpressiveGuy();
Q("task|2|Oh sweet relief! You've reached the protection of the good " + nemesis); Q("task|2|Oh sweet relief! You've reached the protection of the good " + nemesis);
Q('task|3|There is rejoicing, and an unnerving encouter with ' + nemesis + ' in private'); Q('task|3|There is rejoicing, and an unnerving encouter with ' + nemesis + ' in private');
Q('task|2|You forget your ' + BoringItem() + ' and go back to get it'); Q('task|2|You forget your ' + BoringItem() + ' and go back to get it');
@@ -193,7 +193,7 @@ function TMainForm_NamedMonster(level) {
var lev = 0; var lev = 0;
var result = ''; var result = '';
for (var i = 1; i <= 5; ++i) { for (var i = 1; i <= 5; ++i) {
var m = Pick(K.Monsters.Lines); var m = Pick(K.Monsters);
if (result == '' || (abs(level-StrToInt(Split(m,1))) < abs(level-lev))) { if (result == '' || (abs(level-StrToInt(Split(m,1))) < abs(level-lev))) {
result = Split(m,0); result = Split(m,0);
lev = StrToInt(Split(m,1)); lev = StrToInt(Split(m,1));
@@ -202,9 +202,9 @@ function TMainForm_NamedMonster(level) {
return GenerateName + ' the ' + result; return GenerateName + ' the ' + result;
} }
function TMainForm_ImpressiveGuy() { function ImpressiveGuy() {
return Pick(K.ImpressiveTitles.Lines) + return Pick(K.ImpressiveTitles) +
(Random(2) ? ' of the ' + Pick(K.Races.Lines) : ' of ' + GenerateName); (Random(2) ? ' of the ' + Pick(K.Races) : ' of ' + GenerateName());
} }
function TMainForm_MonsterTask(level) { function TMainForm_MonsterTask(level) {
@@ -222,21 +222,21 @@ function TMainForm_MonsterTask(level) {
if (Odds(1,2)) { if (Odds(1,2)) {
monster = 'passing' + monster + ' ' + Pick(NewGuyForm.Klass); monster = 'passing' + monster + ' ' + Pick(NewGuyForm.Klass);
} else { } else {
monster = PickLow(K.Titles.Lines) + ' ' + GenerateName + ' the' + monster; monster = PickLow(K.Titles) + ' ' + GenerateName + ' the' + monster;
definite = true; definite = true;
} }
var lev = level; var lev = level;
monster = monster + '|' + IntToStr(level) + '|*'; monster = monster + '|' + IntToStr(level) + '|*';
} else if ((game.questmonster != '') && Odds(1,4)) { } else if ((game.questmonster != '') && Odds(1,4)) {
// Use the quest monster // Use the quest monster
var monster = k.Monsters.Lines[fQuest.Tag]; var monster = k.Monsters[fQuest.Tag];
var lev = StrToInt(Split(monster,1)); var lev = StrToInt(Split(monster,1));
} else { } else {
// Pick the monster out of so many random ones closest to the level we want // Pick the monster out of so many random ones closest to the level we want
var monster = Pick(K.Monsters.Lines); var monster = Pick(K.Monsters);
var lev = StrToInt(Split(monster,1)); var lev = StrToInt(Split(monster,1));
for (var i = 0; i < 5; ++i) { for (var i = 0; i < 5; ++i) {
var m1 = Pick(K.Monsters.Lines); var m1 = Pick(K.Monsters);
if (abs(level-StrToInt(Split(m1,1))) < abs(level-lev)) { if (abs(level-StrToInt(Split(m1,1))) < abs(level-lev)) {
monster = m1; monster = m1;
lev = StrToInt(Split(monster,1)); lev = StrToInt(Split(monster,1));
@@ -486,8 +486,8 @@ $(document).ready(GoButtonClick);
function TMainForm_WinSpell() { function TMainForm_WinSpell() {
AddR(Spells, K.Spells.Lines[RandomLow(Min(GetI(Stats,'WIS')+GetI(Traits,'Level'), AddR(Spells, K.Spells[RandomLow(Min(GetI(Stats,'WIS')+GetI(Traits,'Level'),
K.Spells.Lines.length))], 1); K.Spells.length))], 1);
} }
function LPick(list, goal) { function LPick(list, goal) {
@@ -506,16 +506,16 @@ function TMainForm_WinEquip() {
var posn = Random(Equips.length); var posn = Random(Equips.length);
Equips.Tag = posn; // remember as the "best item" Equips.Tag = posn; // remember as the "best item"
if (posn == 0) { if (posn == 0) {
stuff = K.Weapons.Lines; stuff = K.Weapons;
better = K.OffenseAttrib.Lines; better = K.OffenseAttrib;
worse = K.OffenseBad.Lines; worse = K.OffenseBad;
} else { } else {
better = K.DefenseAttrib.Lines; better = K.DefenseAttrib;
worse = K.DefenseBad.Lines; worse = K.DefenseBad;
if (posn == 1) if (posn == 1)
stuff = K.Shields.Lines stuff = K.Shields
else else
stuff = K.Armors.Lines; stuff = K.Armors;
} }
var name = LPick(stuff,GetI(Traits,'Level')); var name = LPick(stuff,GetI(Traits,'Level'));
var qual = StrToInt(Split(name,1)); var qual = StrToInt(Split(name,1));
@@ -561,15 +561,15 @@ function TMainForm_WinStat() {
} }
function TMainForm_SpecialItem() { function TMainForm_SpecialItem() {
return InterestingItem + ' of ' + Pick(K.ItemOfs.Lines); return InterestingItem + ' of ' + Pick(K.ItemOfs);
} }
function TMainForm_InterestingItem() { function TMainForm_InterestingItem() {
return Pick(K.ItemAttrib.Lines) + ' ' + Pick(K.Specials.Lines); return Pick(K.ItemAttrib) + ' ' + Pick(K.Specials);
} }
function TMainForm_BoringItem() { function TMainForm_BoringItem() {
return Pick(K.BoringItems.Lines); return Pick(K.BoringItems);
} }
function TMainForm_WinItem() { function TMainForm_WinItem() {
@@ -593,8 +593,8 @@ function TMainForm_CompleteQuest() {
case 0: case 0:
var level = GetI(Traits,'Level'); var level = GetI(Traits,'Level');
for (var i = 1; i <= 4; ++i) { for (var i = 1; i <= 4; ++i) {
var montag = Random(K.Monsters.Lines.length); var montag = Random(K.Monsters.length);
var m = K.Monsters.Lines[montag]; var m = K.Monsters[montag];
var l = StrToInt(Split(m,1)); var l = StrToInt(Split(m,1));
if (i == 1 || abs(l - level) < abs(lev - level)) { if (i == 1 || abs(l - level) < abs(lev - level)) {
var lev = l; var lev = l;
@@ -622,8 +622,8 @@ function TMainForm_CompleteQuest() {
case 4: case 4:
level = GetI(Traits,'Level'); level = GetI(Traits,'Level');
for (var i = 1; i <= 2; ++i) { for (var i = 1; i <= 2; ++i) {
montag = Random(K.Monsters.Lines.length); montag = Random(K.Monsters.length);
m = K.Monsters.Lines[montag]; m = K.Monsters[montag];
l = StrToInt(Split(m,1)); l = StrToInt(Split(m,1));
if ((i == 1) || (abs(l - level) < abs(lev - level))) { if ((i == 1) || (abs(l - level) < abs(lev - level))) {
lev = l; lev = l;
@@ -700,16 +700,13 @@ String.prototype.toArabic = function() {
return n; return n;
} }
function TMainForm_CompleteAct() { function CompleteAct() {
PlotBar.Position = 0; PlotBar.reposition(0);
Plots[Plots.length-1].StateIndex = 1; Plots.checkOff(Plots.length-1);
PlotBar.Max = 60 * 60 * (1 + 5 * Plots.length); // 1 hr + 5/act PlotBar.reset(60 * 60 * (1 + 5 * Plots.length())); // 1 hr + 5/act
PlotBar.Hint = 'Cutscene omitted'; PlotBar.Hint = 'Cutscene omitted';
var item = Plots.Add; Plots.Add('Act ' + (PlotsItems.length-1).toRoman());
item.Caption = 'Act ' + (PlotsItems.length-1).toRoman(); Plots.scrollToBottom();
item.MakeVisible(false);
item.StateIndex = 0;
item.Width = item.Width-1;
WinItem(); WinItem();
WinEquip(); WinEquip();
-15
View File
@@ -1,21 +1,6 @@
/* copyright (c)2002-2010 Eric Fredricksen all rights reserved */ /* copyright (c)2002-2010 Eric Fredricksen all rights reserved */
var randseed = Math.floor(Math.random() * 0xFFFFFFFF);
function Random(n) {
return Rand32Rough() % n;
}
function Rand32Rough() {
// http://www.merlyn.demon.co.uk/js-randm.htm#MR
var T32 = 0x100000000;
var constant = 134775813;
var X = constant * randseed + 1;
return (randseed = X % T32);
}
function Roll(stat) { function Roll(stat) {
stats[stat] = 3 + Random(6) + Random(6) + Random(6); stats[stat] = 3 + Random(6) + Random(6) + Random(6);
$("#"+stat).text(stats[stat]); $("#"+stat).text(stats[stat]);
+13 -3
View File
@@ -65,7 +65,7 @@ th:first-child {
border-right: solid 1px grey; border-right: solid 1px grey;
} }
table { .listbox {
border: solid 1px black; border: solid 1px black;
width: 250px; width: 250px;
background-color: white; background-color: white;
@@ -130,7 +130,7 @@ div.progress-container > div.bar {
.window { .window {
background-color: #eee; background-color: #eee;
width:800px; width: 800px;
border: outset 2px silver; border: outset 2px silver;
padding: 2px; padding: 2px;
margin: 1em; margin: 1em;
@@ -138,4 +138,14 @@ div.progress-container > div.bar {
#taskbar { #taskbar {
width: 99%; width: 99%;
} }
div.scroll {
overflow: auto;
height: 100px;
width: 250px;
}
div.scroll > table {
width: 234px;
}
+3 -10
View File
@@ -128,17 +128,10 @@
<div class="vbox" flex="4"> <div class="vbox" flex="4">
<span class="label head" >Plot Development</span> <span class="label head" >Plot Development</span>
<table class="listbox" id="Plots"> <div class="scroll listbox">
<tr><td>Prologue <table id="Plots">
<tr><td>Act 1
<tr><td>&nbsp;
<tr><td>&nbsp;
<tr><td>&nbsp;
<tr><td>&nbsp;
<tr><td>&nbsp;
<tr><td>&nbsp;
<tr><td>&nbsp;
</table> </table>
</div>
<div class="progress-container" id="PlotBar"> <div class="progress-container" id="PlotBar">
<div class="bar" style="width: 50%"></div> <div class="bar" style="width: 50%"></div>
</div> </div>