mirror of
https://bitbucket.org/grumdrig/pq-web.git
synced 2026-09-29 00:34:00 -06:00
More stuff implemented.
This commit is contained in:
@@ -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 = [
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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]);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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>
|
|
||||||
<tr><td>
|
|
||||||
<tr><td>
|
|
||||||
<tr><td>
|
|
||||||
<tr><td>
|
|
||||||
<tr><td>
|
|
||||||
<tr><td>
|
|
||||||
</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>
|
||||||
|
|||||||
Reference in New Issue
Block a user