Atlantis Times v1.1 v02n06 From: GM%TRPASB@MPA15AB.mv-oc.Unisys.COM Date: Wed, 20 Apr 1994 16:32:22 +0000 ######################################################################## =-=-= Atlantis Times v1.1 Volume 2 Number 6 =-=-= ######################################################################## Words from The Big Guy: REMEMBER, send game problems to: jjc@MPA15C.mv-oc.unisys.com. I don't read the mail at the other addresses!!! Game Rules UPDATE: Ships under construction now also indicate how many build points are left to complete the ship. Remember, there is a limit of 72 characters per line for Times submissions. Anything over 72 characters will wrap around auto- matically. Some of you are not telling me what unit to credit for your Times Articles. Please remember to do so, as I don't know who to pay otherwise! Well, we no longer have heffalump. The mailing list is no longer available. I'll keep running the game, but we really need a list server of some sort. Anybody got a system we can use? Send Times to: jjc@mpa15ab.mv-oc.unisys.com Send Orders to: gm%trpasb@mpa15ab.mv-oc.unisys.com Send problems/comments/bug reports/questions to me personally at: jjc@mpa15c.mv-oc.unisys.com I read the mail at the times address once a week, when I'm setting up the Times. I NEVER read mail where the orders go to, so don't send anything but orders there. Good luck, and enjoy. - TBG ######################################################################## "Stig Malm was always an ordinary young man, that special kind of person of whom the neighbours would always later say: "He seemed so nice. He was always so quie t and he never caused any trouble. I don't understand how it could come to this... ", shaking their heads in sadness and disbelief. The son of a merchant, and the pro duct of a happy and affluent home, his life seemed secure and fulfilling. His parents we re more than happy to provide him with a classical education, but it was clear that he w ould return to the bossom of home to take over his fathers iron business, when the ti me came. In spite of everything, young Stig was content. He was always a brooding child, and his carefree upbringing gave him plenty of spare time, which he spent reading and th inking about the futility of living. Upon the summon of his father, he finished his studies and returned home to take up a position in the firm. However, at this time he started associating with some "disreputable" people in the seedier parts of town. Drinking wine in run-down ta vernas, he would participate in endless discussions with such infamous persons as the "Reverend" Rex and the younger of the O'Hara brothers, "Righteous" Robert. The discussions drifted into politics and the way society was organized, and suddenl y it seemed ti Stig that he had found an answer to what he was looking for, a purpose with his life. He had a vision. He would dedicate his life to the down- trodden of soc iety, to the exploited workers and peasants. His would be the goal of ridding the world of ki ngs and emperors alike, and bringing power back to the people! To the great distress of his bewildered parents, he started his efforts at home. He now realized, he said, what an oppressive system his family, and everything he had previously known, was a part of. Stig Senior's patience was finally exhausted wh en Stig Junior tried to organize his father's workers to fight for better conditions and higher wages. " I have no son!", proclaimed the elder one, and young Stig was cast out. This proved to provide yet another boost for Stig to double his efforts. Tog ether with a growing number of admiring followers he decided to form an organization with the ultimate goal of liberating the world from its oppressors and introduce the "Bet ter Society". Thus the LandsOrganisationen was born. Workers, Peasants and Students of the World, Unite! " /Olov Liljeborg ######################################################################## BATTLE SIMULATOR!! BATTLE SIMULATOR!! Hey! Ever wanted to know how your army will stand up BATTLE SIMULATOR!! to your neighbor's but didn't want to find out the hard BATTLE SIMULATOR!! way? Well, if you have a C compiler, wonder no more! BATTLE SIMULATOR!! BATTLE SIMULATOR!! Here is some C code that simulates a battle between two BATTLE SIMULATOR!! factions. Just compile it and run. It's ( hopefully) BATTLE SIMULATOR!! self-explanatory. BATTLE SIMULATOR!! BATTLE SIMULATOR!! Send questions, comments, job offers, and/or research BATTLE SIMULATOR!! grants to cyu@mit.edu (Heheh :) BATTLE SIMULATOR!! BATTLE SIMULATOR!! P.S. if your C library uses "srand" and "rand" instead of BATTLE SIMULATOR!! "srandom" and "random", change the line that says BATTLE SIMULATOR!! #define RANDOM 1 /* True .... BATTLE SIMULATOR!! to BATTLE SIMULATOR!! #define RANDOM 0 /* True .... BATTLE SIMULATOR!! (You might have to include some other header files too, BATTLE SIMULATOR!! but I'm not sure.) BATTLE SIMULATOR!! /* ============Cut Here=========== */ #include <stdlib.h> /* random */ #include <assert.h> #define RANDOM 1 /* True when "random" is available, else use "rand" * / #define XBOW_SPEED 3 /* How many rounds per crossbow attack */ #define EXCELLENT .49 /* Chance of hit at +2 skill */ #define GOOD .40 /* Chance of hit at +1 skill */ #define FAIR .25 /* Chance of hit at 0 skill */ #define POOR .1 /* Chance of hit at -1 skill */ #define TERRIBLE .01 /* Chance of hit at -2 skill */ typedef void (*pF)(void *pData); typedef struct unitStruct { int number; int attacksLeft; int behind; /* 1 for behind, 0 for not */ char weapon; /* s, l, or x: sword, lbow, or xbow */ int skillLev; int armor; pF pFun; /* Special function for things like spells. */ } unit; typedef struct factionStruct { unit **pUArray; int size; } faction; /*-------------------------------------------------*/ #define allocUnit() ((unit *) malloc(sizeof(unit))) int readUnit (unit *pU) /* Assume: "pU" allocated. Return: true if user wants to continue, false if not Side-effect: User enters values into "pU". */ { char s[20]; float f; printf("Number of Men (0 to quit): "); gets(s); sscanf(s, "%f", &f); if (f <= 0.) return 0; pU->number = (int) f; printf("Behind? (y/n) "); gets(s); pU->behind =(s[0] == 'y'); printf("Weapon [s(word), l(ongbow), x(bow)]: "); gets(s); pU->weapon = s[0]; printf("Level: "); gets (s); sscanf(s, "%f", &f); pU->skillLev = (int) f; printf("Armor & spells not implemented yet.\n"); return 1; } /*-------------------------------------------------*/ void printUnit (unit *pU, int printAll) /* Assume: "pU" allocated. Side-effect: Fields printed. Print only essential info, unless "printAll" is true. */ { printf("%4d men", pU->number); if (pU->behind) printf(" B"); printf(", %2d %c\n", pU->skillLev, pU->weapon); if (printAll) printf("\t#at %4d, ar %d, pF %x\n", pU->attacksLeft, pU->armor, pU->pFun); } /*-------------------------------------------------*/ void readFaction (faction *pf) /* Assume: "*pf" allocated, but its contents are not. Side-effect: "pf->pUArray" allocated and contains all the units of one faction. Number of units put in "pf->size". */ { int size = 0; unit *pU; printf ("Unit %d:\n", size+1); for (pU = allocUnit(); readUnit(pU); pU = allocUnit()) { if (size % 10 == 0) { /* Allocate space for "pUArray" in blocks of 10 */ if (size == 0) pf->pUArray = (unit **) calloc(10, sizeof(unit *)); else pf->pUArray = (unit **) realloc(size + 10, sizeof(unit *)); } pf->pUArray[size] = pU; size++; printf ("\nUnit %d:\n", size+1); } pf->size = size; } /*-------------------------------------------------*/ void printFaction (faction *pf) /* Assume: "pf" contains valid data. Side-effect: Each unit of "pf" printed. */ { int C; for (C=0; C<pf->size; C++) printUnit(pf->pUArray[C], 0); } /*-------------------------------------------------*/ int factionSumUnits (faction *pf, int choice) /* Assume: "pf" contains valid data. "choice" is 0 for "number", 1 for "attacks", 2 for number of non-behind men. Return: Sums the unit field specified by "choice" in the faction. */ { int num = 0, C; for (C=0; C< pf->size; C++) switch (choice) { case 0: assert(pf->pUArray[C]->number >= 0); num += pf->pUArray[C]->number; break; case 1: assert(pf->pUArray[C]->attacksLeft >= 0); num += pf->pUArray[C]->attacksLeft; break; case 2: if (!pf->pUArray[C]->behind) num+=pf->pUArray[C]->number; break; default: assert(0); } return num; } /*-------------------------------------------------*/ int factionNthMan (faction *pf, int n, int choice) /* Assume: "pf" contains valid data. "n" > 0. "choice" is 0 for man ("number"), 1 for attacker ("attacksLeft"), 2 for non-behind man. Return: the index of the unit of "pf" that corresponds to the "n"'th something of the faction, where "something" is determined by "choice". */ { int unitNum; assert(n>0); for (unitNum=0; unitNum< pf->size; unitNum++) { int val; switch (choice) { case 0: val = pf->pUArray[unitNum]->number; break; case 1: val = pf->pUArray[unitNum]->attacksLeft; break; case 2: val = (pf->pUArray[unitNum]->behind ? 0 : pf->pUArray[unitNum]->number); break; } if (n <= val) return unitNum; n -= val; } assert(0); } /*-------------------------------------------------*/ float rnd (float from, float to) /* Assume: "from" <= "to" Return: A random number between "from" and "to" */ { float range, x; assert (from <= to); range = to - from + 1; #if RANDOM x = (float) random() / (float) 0x7fffffff; #else x = (float) rand() / (float) 0x7fffffff; #endif return (x*range + from); } /*-------------------------------------------------*/ int findPerson (faction *pf1, faction *pf2, int *pFNum, int *pUNum) /* Assume: "pf1" and "pf2" contain data (esp. units with " attacksLeft" set). "pFNum" and "pUNum" were allocated. Return: false only if neither side has attacks left. Side-effect: A random person from the factions is chosen. "*pFNum" set to 1 or 2. "*pUNum" set to between 0 and the corresponding faction size. */ { int num1, num2, n; num1 = factionSumUnits(pf1, 1); /* Num attacksLeft */ num2 = factionSumUnits(pf2, 1); if (num1+num2 <= 0) return 0; n = (int) rnd(1., (float) (num1+num2)); if (n<=num1) { *pFNum = 1; *pUNum = factionNthMan(pf1, n, 1); /* n'th attacker */ } else { *pFNum = 2; *pUNum = factionNthMan(pf2, n-num1, 1); } return 1; } /*-------------------------------------------------*/ int findVictim (faction *pf, int *pUNum) /* Assume: "pf" contains valid data. "pUNum" was allocated. Return: false only when there are no victims left Side-effect: A random opponent is chosen (non-behind ones take priority over behind ones). Set "*pUNum" to be the person's unit number. */ { int num, onlyBehind = 0, n; num = factionSumUnits(pf, 2); /* Number of front-liners */ if (num <= 0) { onlyBehind = 1; num = factionSumUnits(pf, 0); /* Remaining men */ if (num <= 0) return 0; } n = (int) rnd(1., (float) num); *pUNum = onlyBehind ? factionNthMan(pf, n, 0) : factionNthMan(pf, n, 2); return 1; } /*-------------------------------------------------*/ int doPerson (faction *pf1, faction *pf2, int fNum, int uNum, int xbowFire) /* Assume: arguments contain valid data. "xbowFire" is true only when the crossbowmen have reloaded. Return: false only when the enemy has been wiped out. Side-effect: Allows 1 man from the "uNum"'th unit of faction "fNum" to attack. "*pf1" and "*pf2" modified. */ { unit *pAttacker, *pVictim; int i, diff; float killChance; if (fNum == 1) { pAttacker = pf1->pUArray[uNum]; if (!findVictim(pf2, &i)) return 0; pVictim = pf2->pUArray[i]; } else { pAttacker = pf2->pUArray[uNum]; if (!findVictim(pf1, &i)) return 0; pVictim = pf1->pUArray[i]; } assert(pAttacker->attacksLeft > 0); (pAttacker->attacksLeft)--; switch (pAttacker->weapon) { case 's': if (pVictim->weapon == 's') diff = pAttacker->skillLev - pVictim->skillLev; else diff = pAttacker->skillLev + 2; break; case 'l': diff = pAttacker->skillLev - 2; break; case 'x': if (!xbowFire) return; /* still reloading */ diff = pAttacker->skillLev; break; default: assert (0); } /* Hey! Are you actually looking through my code?! I hope you didn't find a bug (or THE bugs, j/k :) ---John Yu */ if (diff > 1) killChance = EXCELLENT; if (diff == 1) killChance = GOOD; if (diff == 0) killChance = FAIR; if (diff == -1) killChance = POOR; if (diff < -1) killChance = TERRIBLE; if (rnd(0., 1.) <= killChance) { /* Hit! */ if (rnd(0., 1.) <= (float) pVictim->attacksLeft / (float) pVictim-> number) (pVictim->attacksLeft)--; /* Killed before he could attack */ (pVictim->number)--; assert(pVictim->number >= 0 && pVictim->attacksLeft >= 0); } return 1; } /*-------------------------------------------------*/ int doRound (faction *pf1, faction *pf2, int xbowFire, int who) /* Assume: "pf1" and "pf2" contain valid data. "xbowFire" is true only when the crossbowmen have reloaded. "who" is either 0, 1, or 2. Return: false only when enemy has been wiped out Side-effect: Performs a round of battle. "*pf1" and "*pf2" modified. if "who" is 1, only "pf1" gets to attack; if 2, then only "pf2" */ { int fNum, uNum; assert (who >=0 && who <= 2); if (xbowFire) printf ("Crossbows fire!\n"); for (uNum=0; uNum < pf1->size; uNum++) { if (who == 2) pf1->pUArray[uNum]->attacksLeft = 0; else pf1->pUArray[uNum]->attacksLeft = pf1->pUArray[uNum]->number; } for (uNum=0; uNum < pf2->size; uNum++) { if (who == 1) pf2->pUArray[uNum]->attacksLeft = 0; else pf2->pUArray[uNum]->attacksLeft = pf2->pUArray[uNum]->number; } for (; findPerson(pf1, pf2, &fNum, &uNum);) if (!doPerson(pf1, pf2, fNum, uNum, xbowFire)) return 0; return 1; } /*-------------------------------------------------*/ #define PRINT_STATUS() { printf("\nFaction 1:\n"); \ printFaction(&f1); \ printf("\nFaction 2:\n"); \ printFaction(&f2); \ } void main () { int round, keepGoing, fleeSize1, fleeSize2; faction f1, f2; char s[20]; #if RANDOM srandom(time(0) * getpid()); #else srand(time(0) * getpid()); #endif printf("Faction 1:\n"); readFaction(&f1); printf("\nFaction 2:\n"); readFaction(&f2); printf("\nWho has better tactics: 1 or 2 (0 for neither)? "); gets(s); PRINT_STATUS(); fleeSize1 = factionSumUnits(&f1, 0) / 2; /* Flee when lose 50% */ fleeSize2 = factionSumUnits(&f2, 0) / 2; keepGoing = 1; if (s[0] != '0') { printf("\n===EXTRA ROUND===\n"); assert ((int) ('2'-'0') == 2 && (int) ('1'-'0') == 1); keepGoing = doRound(&f1, &f2, (round-1) % XBOW_SPEED == 0, (int) s[0] - '0'); PRINT_STATUS(); } for (round=1; keepGoing; round++) { printf ("\n===ROUND %d===\n",round); if (factionSumUnits(&f1, 0) < fleeSize1) { printf("Faction 1 flees!\n"); if (factionSumUnits(&f2, 0) < fleeSize2) { printf("Faction 2 also flees!\n"); exit(1); } else { printf("Faction 2 gets free attack.\n"); doRound(&f1, &f2, (round-1) % XBOW_SPEED == 0, 2); PRINT_STATUS(); exit(1); } } else if (factionSumUnits(&f2, 0) < fleeSize2) { printf("Faction 2 flees!\n"); printf("Faction 1 gets free attack.\n"); doRound(&f1, &f2, (round-1) % XBOW_SPEED == 0, 1); PRINT_STATUS(); exit(1); } keepGoing = doRound(&f1, &f2, (round-1) % XBOW_SPEED == 0, 0); PRINT_STATUS(); } } /* ========End of C File=========== */ ----------- No problem is so big that you can't run away from it. To be sure of hitting the target, shoot first, and call whatever you hit the target. ######################################################################## THUD ZZAP! That's the sound a disgruntled mage makes when he hits the ground after falling off of his horse. Good thing it was only a wooden training mockup of a horse; the real things were too expensive to have zapped. Sludge scowled as the mage was lifted back onto the horse, complaining. "I should be preparing the for magic school!" The mage just didn't understand the necessity of learning to ride in this world. One month studying here would cut many months off travel time later. THUD ZZAP! "The students will be here soon!" THUDD ZZAP! Sludge sighed, and moved on to where the Vermin were putting the finishing touches on their show. They were actually looking fairly competent, now. After only six months of intensive practicing, they could pull off a three ball shower without dropping more than one of the balls. Maybe I should just slip away and see the world, Sludge thought. Then he remembered that, according to the scouts, the rest of the world was just like here. Sludge sighed. ------------------------------- The Skulking Vermin! World renowned entertainers and vagabonds. More yuck yuck jokes since the last Inquisition! ------------------------------- Faction 109, The Skulking Vermin ######################################################################## /\ Dear Eric von Wald, {} I too read 'A Cautionary Tale' {} and i found it ammusing, nothing more. I am sure {} that most of its readers found it thus. However when {} i read your reply i thought again.... Your clearly {} agressive response and threats of death [I'll stomp {} the living ____ out of him.] made me wonder if the {} author wrote out of personal experience. You might {} have been better employed by trying to convince us {} that the tale was untrue rather than threatening {} the author. A few 'facts' about your newbie alliance {} would be appreciated; such as where it is, and what |\{}/| form of government it runs under, Democracy, O. \{}/ .O Dictatorship or Anarcy... I wonder. I had been asked 'Oo. {} .oO' to join your alliance by annother member, I shall 'OOooOOooOO' not. It was your letter not 'A Cautionary Tale' [] that had the largest part in this decision. [] I did not write 'A Cautionary Tale' and I [] am not afraid to sign my name. I am [] <OO> Ekij of the MUSADites (133) ######################################################################## "An outrage! Obviously an act of war." Baron Diamante was livid with fury. "Aye," answered Laertes, his advisor. "There can be no doubt that these scattered units - one from the Skinflayers, one from PATO, and one from the Order of the Octagonal Pit - worked in collusion, and deliberately. But what shall we do about it?" "Obviously the lives of these individuals are forfeit. But I suppose their masters expected them to die. Presumably this sabotage will be followed by whole-scale invasion of our southern holdings. What to do, what to do..." "My lord, did you notice that the followers of Hans, leader of that band called the Merry Pranksters, has agents in several of our regions, but his men have made no hostile gestures. Perhaps they are a neutral third party on this continent." "We must this Hans then - but there are so many Hanses! A strange people. And the Skin Seekers seem a peaceful lot also. Perhaps there are others on this continent who retain their sanity. Let me think..." Baron Diamante pondered for a moment, then burst out. "Blast these power-mad war mongers! We deliberately left our lands un-guarded as a gesture of peace, and the dishonorable swine use that against us. Wasn't it enough that they control TWO mountains, and have free access to the third, and probably own forests besides? Nay, they must strike at us. We cannot hold against the combined might of five factions, even with the Reverend Mother's help. Let us hope that the other factions in their alliance have cooler heads than these three, but we cannot depend on such good fortune any longer. If need be, we'll show them how to die like men. But first, I want you to spread the word throughout the lands. Here's what I want you to say..." The next day, notices appeared throughout Mizip, Grisbygd, and Farafra, stating: NOTICE TO ALL WHO ENTER HERE: Because of persons violating our trust, we the agents of House Diamante must forbid the taxing, recruiting, or free passage of all who will not ally with us. WARNING TO ALL INDEPENDENT HOUSEHOLDS: Beware the agents of the Skinflayers, PATO, and the Order of the Octagonal Pit. These agents will employ trickery and surprise attack to kill and demoralize your vassals. Place sentries in all your territories, and GUARD against their evil ways. SEEKING: Parties interested in exchanging information and mutual defense against the above-named villains and their allies. Contact Laertes Diamante at vjg@cbcosmos.att.com for information sharing and negotiations. Contact with agents of the Merry Pranksters or the Skin Seekers, with authority to speak for the rulers of those Households, is particularly desired. ######################################################################## There were rumours but Jessica had not actually seen anything quite as imposing and majestic. The foundations of a great castle constructed from the local stone were being worked on by many men on hilltop in view of the biggest building she had ever seen. It was also made of stone and certainly would protect many men from the arrows of a bowmen. Jesscia quickly noted the size and position of each one and fleed back to the relative safety of the plains. ######################################################################## A Cautionary Tale Once, in the wonderful land of Atlantis, a young man was kicked out of home. "Go off, boy, and fend for yourself. Your time under our wings is over" his Mother said. Looking on, you might have though that this was pretty cruel of his parents, if if wasn't for the $5000 he had sticking out of his pockets! As our hero was strolling down the street wondering how he would fend for himself, he saw a sign in a window "Bright Shiny Swords For Sale - Apply Within". "Excellent!" he thought. "What better thing to fend with than a sword?" Inside, the waspish looking man told him that swords were pretty valuable, and he'd have to pay a lot. "That's OK, I have lots" said the lad. The waspish man looked at him. "Alright, sign here, an agreement to meet the Sword Trader Michael at the Sword Trading Place specified at the time specified". Our hero signed. Next day he strolled off the the Sword Trading Place, which happened to be a glade in a forest. No sooner did he arrive than "Whammo" out of the bushes jumped three men in black cloaks with big shiny swords, demanding the money that was still poking out of our hero's pocket. "Treachery!" cried our fast learning hero, and ran for all his might. In a moment of unprecedented inspiration, he thought to drop $100 as he left, which delayed the silly thugs enough for him to make his escape. When he arrived in town, he was quick to head for the nearest pub, and made sure that all and sundry learned from his lesson, and that they knew that Sword Trader Micheal was a true chalatan and thief! -- But wait! The story is not over yet. Everyone knows you should go to Sword Trading Places with care! This is not the material of a Cautionary Tale. So read on! Shortly after our hero left the glade, Sword Trader Michael arrived, with shiny sword for sale in hand. He stood around, and grumbled for a while, then left again. Later he arrived at the pub. And there was learned another lesson: respectable Sword Traders do not take kindly to having their name besmirched, however persuading the initial evidence might have been! The Cautionary Author. ######################################################################## As she stepped out of the shack in Badalona which was the headquarters of the Band of Restless Acquaintences, Lynn had a slight frown. Marten Fairweather, the leader of the band, had not been seen for a while. Still, Lynn was not one for worrying too long when there was work at hand. Someone had to earn the money while the leaders were off playing games. And the frown soon disappered when she saw the band of Dwarves on the sidewalk, trying to con a few silver bits by juggling. "Call that entertainment?", she thought to herself as she strolled by. Her smile widened when she saw one of the jugglers drop his clubs, open mouthed, as he watched her staunter past. She had to smile a bit too as she walked by what appeared to be a derelict sitting up against a tree, not moving, wearing a badge on his lapel saying "Starmage Squieilperder of The Mages Of Drakewood!". There had been a few of these guys seen around Badalona recently, all just sitting there, staring into space and not talking to anyone. She reached out and touched his shoulder. Just like the others, he didn't move. "Must have been some spell they cooked up!", she thought to herself. Much more worrying were the dudes with masks over their faces, who never answered a friendly hello, and slunk around town carrying on their own unspecified business. "I guess anyone has a right to privacy", she mused, "but no-one even seems to know any of these guy's names!". By this time, Lynn had been joined by the rest of her team, and the group of them were just reaching the "Badalona Great Time Bar" as the sun was setting. Maybe tonight she'd find out something about the nameless dudes, but meanwhile there was work to do & money to be earned! ######################################################################## By the almighty God Agrik, I Daquer of Ieyasin have finally past my tactics diploma, and now I hear that I have been taken away the command of my brave warriors in Planken. The council of the Northern Wind has decided to give the command to the cannibal Dr. As if this wasn't enough the Dr. immediatelly has given marching orders to all the troops. The rumour says that thay will march to the Mountain Grisbygd. The reason is apparently to keep the order in the province now that the old Emperor Shaddam suddenly has passed away. Well I wonder what the Imperial troops will think of that help. And why have all these mages suddenly left the camp one dark night. Some tell some nonsens about spices and other preserving substances, but I would much rather belive that they have read the Guide to Atlantis last month and decided to go for a skiing holiday in Mizip. As some form of compensation for the loss of my command I have been reassigned back to Monamolin to take command of all the bowmen that have been recruited there the last couple of month. I wonder how the training that captain Hagir has provided has turned out. I just hope that I will get a real mission from the Council soon so that the brave troops of The Rowing Doom can conquer some territories for the Northern Wind and spread the word of the almighty God Agrik. ######################################################################## Dear Regents of the University of Zamora: This letter is to inform you that I must resign as President of the university. I am seeking an early retirement in the pleasant forests of Roddendor. I recommend Dr. Tamara as my replacement. Her work for the university is without parallel. Enrollment has been disappointing. The only students to even read the application are followers of a "Doktor" Vox who is rumored to be teaching cannibalism to his people. No applications have been returned however (Thank the Lords of Atlantis, no cannibals in this school!). There is a priest who calls himself the new messiah who dances on oceans. He is holding a revival on the campus which has drawn more participants in one month than the university has in over a year. There are hopes that enrollment will increase shortly; a blue eyed man was seeking training in sword fighting for his fremen army. They seek the end of the reign of the Emperor Shaddam IV. There are already rumors of his assassination coming from the north. Politics is nothing that this quiet professor of arts wants any part of. Dr. Tamara however is excited about opening a department of political science and expanding the physical education department to accommodate the fremen students. Sincerely, Dr. Zamora ######################################################################## Doktor Vox relaxed in the comfortable camp pavilion, reading the latest tactical treatise from the University, "Slaughter and Mayhem as Artistic Expression." He picked his teeth idly with a sharpened tibia-bone toothpick. It seemed like May was another interminably long month, but at least they were out of that nasty bug-infested swamp! Finally, he heard the caller announce the arrival of the northern scouts, and put his book down, anxious to hear the news. The young lad burst in to the tent with a grin on his face. Vox relaxed again, ready to hear some good news for a change. "Greetings to my Lord and Master Vivisectionist from your Humble Scout." Vox wasn't all that big on titles, himself, but they seemed to motivate the group a bit. He nodded and motioned an 'at ease' to the scout. "Well, Boss, I did what you asked up on the mountain. Just marched in without a weapon or anything, went to the local tavern, and said, GUARD 1. I couldn't believe it! Those silly peasants actually listened to me with respect!" Vox smiled. "I assumed they would, of course. After all, you know the nature of peasants." The scout grinned. "Yeah, I suppose. But then it wasn't any work at all to convince them to stop paying taxes to the Emperor. I honestly think they just hadn't thought about it before! A few words about oppression and 'individual rights' and that stuff you used to preach, and they were eating right out of my hand!" Vox's interest was piqued, not that the peasants had listened, but that this scout was actually still alive, and not chopped into tiny bits all over Grisbygd. Perhaps this little tax revolutionary was as lucky as he was dense. "So, I take it the Emporer's troops went a bit hungry this fine spring?" The scout grinned even wider. "Oh, it's better than that! See, ol' Shaddam IV himself was locked away up in his lil' castle Arakeen, way up at the top of the mountain. Well, when the peasants stopped delivering the food, the livery didn't know *what* to do, and they asked the miners, and hey, the miners were goin' hungry themselves, and *they* weren't gonna give up any of their grub, and so..." Vox's expression turned into shock. "You're not trying to tell me...the Emperor..." The scout beamed happily. "Nobody's seen a glimpse of the old guy's spicy hide since about mid-month, and it sure looks like they're turnin' that wood into coffins instead of crossbows..." Vox jumped to his feet. "You FOOL! I wanted to talk to the Emperor personally! And now you've gone and STARVED him to death! How could the Emperor be that stupid!!" Vox composed himself and sat down again, as his suddenly subdued scout tried to think of an appropriate response. But then Vox looked thoughtful. "Well, after all, you know the nature of nobility..." Two hours later, Dr. Vox was supervising a large camp-breaking exercise. It was time to go see this castle of Arakeen himself, and see what he could discover about spice secrets. He was pretty sure he'd be late for the funeral, but maybe the new Padishah heir could be of some use. He'd sent the scout back on up to the mountain, over his rather frightened protests. Maybe the idiot's luck would hold out another week until the army arrived. Vox shook his head once again in astonishment. *How* could that tactic have possibly worked? And he wondered, idly, if the tax revolutionaries in Farafra and Mizip had been as successful... ######################################################################## The Salen Xerethin stood, his feet rooted firmly at the centre of the World. He was pleased with the last millenium, which had been largely uneventful, apart from the time when he had needed to scratch his nose. Lately, the Little Folk had populated his hair, and he appreciated the much-needed haircut, although a little more work on his western fringe would not have gone astray. The sound of voices, and of rolling dice, reached his ears from deep within the World. Ah, some of the lesser gods were playing Atlantis! The Xerethin listened intently, interested in the game's progress... "1 - 2 - 3 - 4 - 5 - Stackforth! I'll buy it! I need somewhere for all these extra lumberjacks". Things were clearly going well for Wind. Tide, who had spent the last three turns in jail, sighed and glanced over to Mist. "How's that 'experiment' of yours with the Little Folk going?", he asked, in a voice that implied that he really didn't want to know, but he didn't want to watch Wind's castle being built in Crieff either. He wished the others would agree to Cosmic Encounter once in a while. "Slowly, since Time was down with the 'flu last week. He stood still for the Little Folk for about a month of their time. Actually, I'm thinking of recalling the Innkeeper. He's done a good job, but the Brotherhood really needs someone with appalling dress sense, now that they're dealing with Gnomes." Tide wasn't listening. "It's time to go out, I'm afraid. Catch you next week". He got up, leaving Mist to struggle on alone. ######################################################################## Derek opened the door, only to step back in shock at the hideous sight that greeted him. Two horrible, scarred faces stared blankly at him, through colorless eyes. One of the men (for they were men, no matter how terribly disfigured) had nothing but a gaping maw for a mouth; the other had a charred, hairless scalp, extending to the place where his ears would be. If he had ears. Derek slowly regained his composure enough to talk; the men patiently waited. "Yes? Can... can I help you?" The earless one spoke in a rasping voice, "Magic. You know magic?" "You must teach us. We shall serve you well, as your apprentices." Derek replied, "Well, I don't really need any apprentices, and I am terribly busy, and..." "We must learn magic. Revenge against the Padishi, whose spice crazed experiments left us like this. All so the Emporer might live a few more years- and look at us." The earless one paused, and then continued, "I am Nemesil, and I cannot hear. My brother Akrophal is my ears, just as I am his tongue." "Well, just the same, I don't need..." Nemesil cut in, "Your master would appreciate powerful allies who hate the Padishi..." Derek looked thoughtful. "Well, you may be right. I am very busy, but let me talk to my friend Regula. Maybe we can work out some sort of deal, after all. Come in." The two grotesque twins shambled into the building, and the door swung shut behind them. ######################################################################## "I must not forget anything" thought Islena. The decision had been made, it was a bold decision, one which could prove costly to the Hugons, nonetheless it was necessary. Iridal has been very cruel toward me since I failed to hit the target. She promised me the pleasure of being in the thick of things when we attack tomorrow. "I was not born to wield a sword" muttered Islena as she packed her bag. The tent flaps brushed aside as Iridal stepped in, and Islena flushed guiltily and stood. "Are you ready for tomorrow Islena?" asked Iridal , taking in Islena's general appearance. 'Why does this girl have such problems looking acceptable in uniform?' she thought 'She's sloppy and careless, that's what's wrong with her.' "Yes, as soon as I have sorted out a clean uniform" Islena replied resentfully. Iridal sighed. "You may think I hate you, but I just want you to have the best chance of coming home tomorrow. And that means discipline. Here is a note for you, read it and think about what I said, I'll see you in the morning." With that remark. Iridal swept out, the tent flaps closing behind her. Islena carefully unfolded the note. 'Dear Islena, You will be pleased to know I am in good health, my travels have brought me to a place called Arlon, and it is very much like Ebonok, populated with two strange races, the Frindels and the Lilliputians. My orders are not to make my presence known as yet, however I cannot help feeling homesick for Ebonok, especially at night when the camp fires of Arlon seem to call to me, to come and join the parties. This is when I miss you and the others the most. By the time you read this letter I shall have moved on, but I want you to know I am thinking of you. All my love, Alara. ' "I wish I was with you Alara, safe from war" she thought as she put dowm the letter. ######################################################################## Arrete found Gar saddling his horse in the chill pre-dawn. "So it's true, you're going?" her breath was white. "Yes, I'm going." Gar was morose. He had been dreading this moment ever since the audience with Cai earlier that week. "South?" "Yes. The Seneschal has some scheme to stop the peasants starving in Orrebygd." "Is that all? Why must you go?" Gar took his time answering. He knew he couldn't hide anything from Arrete. "No, that's not all. It seems that Thorin has issued an ultimatum to the foreigners who work the same hills as our dwarven allies. They have failed to honor the agreement between our two dominions." Gar's thoughts went back to the last time he was in the Southern mountains. At that time, diplomacy had averted a bloody confrontation. But now... "I must either bring back word of the strangers' acceptance of the treaty, or ensure that they are buried according to their custom." ######################################################################## In the spirit of laying to rest fears of the "People With Swords Looking For People Without" rumors about the Newbie Alliance, I will let it be know that the Alliance has removed it's first member for the exact reason that this rumor got started. Let it be known that Martin Gregory, commander of Faction 118, A Band of Restless Aquaintences, was the first to cross the alliance. Through his cowardly acts of terrorism and brutality to newly formed factions, including those of the alliance, Martin has been exiled from the Alliance and is now the number one enemy of the NA. We hope that he does not cause harm to others as we deal with him. And let it be known that should any come between us and our revenge, they will pay. One a lighter note, the Newbie Alliance still has many openings for trustworthy, honest, and honorable factions. If you desire to become part of the fastest growing alliance in Atlantis, send mail to smellack@crash.cts.com. Please include 1) Your faction number and name, and 2) when your faction was created. Further information will be given out after initial contact. Michael Odowick smellack@crash.cts.com Rorschach Inc. (101) ######################################################################## Niskby Theotretical Institute We regret the continued delay of our discourse on combat, but the publishing of last month's analysis of battle by Larson's Adventurers has forced some study of the methods used and will alter our publishing plans such that we will only publish differences between our results and that shown in the Larson article. We can pass on a couple of simple computations: Maximum supportable building in a mountain: 4000 [decay equals production in area] Maximum supportable building in forest: 2000 Maximum supportable building in a swamp: 1000 [this makes no assumptions as to fiscal support for the workers necessary for the building/maintainance of the building] The thought of building decay calls into question the idea that a bigger building is better than a lot of smaller buildings. After all 211 buildings of size 19 in a mountain would house the same number of men and would not decay over time. ######################################################################## Emperor Shaddam IV has died!!!!! Due to interference by the Skinflayers, PATO, and their allies in taxation, Emperor Shaddam IV is dead. The new head of the Empire is Farad'n, grandson of the Emperor through the Corrino branch of the family. We warn all to protect their tax sources well, or else you may suffer the fate of the Emperor. In memory of Shaddam, the Padishah Maps will be continued, through the same address. Farad'n Successor of Emperor Shaddam IV ######################################################################## Ads from premier issue of PC Tech Journal (Jul 83): 20MB Hard disk from QCS - Cost: $2999. Davong 5 MB int. hard disk... only $1465! ------------------------------------------------------------------------ ------- In the beginning, there was nothing. So God said, "Let there be light!" And there was still nothing, but you could see it. Received: from mail.unigate1.unisys.com (sys1.mv-oc.unisys.com) by mvdns1 (4.1/S MI-4.1-1.6) id AA04272; Mon, 18 Apr 94 09:00:10 PDT Received: from turbo.ecn.purdue.edu by mail.unigate1.unisys.com (4.1/ SMI-4.1) id AA03284; Sat, 16 Apr 94 23:09:13 GMT Received: from turbo.ecn.purdue.edu (pepper@localhost) by turbo.ecn.purdue.edu (8.6.8/3.4davy) id SAA05368; Sat, 16 Apr 1994 18:00:21 -0500 Message-Id: <199404162300.SAA05368@turbo.ecn.purdue.edu> Date: Sat, 16 Apr 1994 18:00:21 -0500 From: Pierre H Pero <pepper%ecn.purdue.edu@mvdns1> Apparently-To: jjc@mpa15ab.mv-oc.unisys.com ######################################################################## ( sung to the the tune of Camp Town Ladies ) The new gnu knew no new gnu news .... No gnu ... knew news. The new gnu knew no new gnu news .... No .... new gnu news. Ah how Dr. Neve Eril loved that song. He couldn't figure out why singing it routinely got him kicked out of taverns before he was done with the first ale. He could sing it all day. In fact he he just had. But then he also spent the evenings talking with Ghoe Knerre who had died some time ago but was still traveling in the back of the Doctors wagon. In short the good doctor had started to drink his own tonic a bit to often. But he was going to have to do something with poor old Ghoe because Ghoe was starting to waft an aroma that was dampening sales. Dr. Neve Eril had thought of just leaving Ghoe in the forest somewhere and let the scavengers take care of the rest. But he had enjoyed his talks with Ghoe too much to treat him so coldly and besides it was never wise to let a wild animal have a taste of human flesh. It just might decide it liked it. Well he might as well follow the old saying about bird of a feather flocking together. The best place for a dead man was with other dead folk. A few days latter the road went past a graveyard that look like it was full long ago and visited very rarely these days. The Doctor pulled the wagon out of sight and acting like a someone visiting a relative he spent the afternoon finding a crypt that seemed well out of the way. With that done he waited for night talking to Ghoe and sipping some of his tonic. That night he pryed open the crypts door and hauled Ghoe inside. But Ghoe looked so forlorn and so lonely sitting in that dusty corner. Ghoe deserved better than this. He deserved friends. Well the Dr. would just make sure he had some. And a more pleasant atmosphere to boot. Several coffins stacked on top of each other made a fair bar and one coffin in front of them made a passable bench. Opening a few other crypts gave a good supply of corpses that with some effort he was able to pose into a friendly tavern scene. There the bar maid Shanda Leer was slapping Ura Hoag. Over There a group of a half dozen was singing some ribald little ditty. He even sat Miss Bea Haven closely beside Ghoe. After all she was the best looking ( and freshest ) woman of the lot. He then gave every one a fresh bottle of tonic and left a good supply empty bottles strewn around. He thought about bringing in some fresh moss but the Dr. remembered Ghoe didn't like `fern taverns`. He left knowing that he had given Ghoe probably one of the best after lifes since the Pharaohs of old Mu. ######################################################################## ATLANTIS ECONOMICS PART 9 This weeks question: Modeling the peasant economy. Last week the Niskby Theoretical Institute published the point at which the maximum surplus growth is generated for a given terrain, so I have edited it out of this article and instead will concentrate on the details of the peasant economy. From a "big picture" point of view, working the land is the primary way new money enters the economy (and is done primarily by peasants). A much smaller amount of money enters via the $5000 given each new faction and an even smaller amount enters via Atlantis Times payments. All other ecomomic activity (taxing, entertaining, and other distastefull acts strong factions may do to weaker ones) only transfers money from "one pocket to another". Maximizing the effectiveness of the peasants in your empire will therefore be the key to economic strength. The turn report gives a "snapshot" of the state of the peasants in each province only at the start and the end of a turn. The sequence of events that takes place between those 2 points is as follows: 1. Initial peasants are reduced by the number recruited by player factions. 2. Initial surplus is reduced by taxation and entertainment. 3. Peasants produce more cash ($12 or $15 depending on terrain). 4. Peasant population grows (each peasant has 5% chance of reproducing, so actual growth varies about 5%). 5. Peasant maintenance is assessed ($10 per each). 6. Peasant migration takes place. Since the initial and final values of the peasant population and surplus are known, if you know how many peasants were recruited and how much taxes were collected, the exact peasant growth can be determined (by the decrease in surplus in step 5) and the exact number of peasants that migrate in or out can be determined. While these 2 data points aren't paricularily interesting, by doing an audit and noting "discrepancies". You can determine if extremely high stealth units are operating in your rear area (recruiting or taxing). For example given : Plain Province and only your units appear to be present 1. Initial state 2500 peasants, $100,000 surplus 2. You recruit 10 (2490 peasants). 3. You tax $2000 4. Surplus should grow to $100,000-$2000 +2490*15 = $135,350. If the Final surplus is $109,000, then 2635 peasants were present during the maintenance phase (equivalent to 5.82% growth). If the final surplus ended in a 5 however, an odd number of men were recruited by somebody else. Detecting taxation by high stealth units is a little more challenging since you can't be sure if the population grew by 5 more than ~5% or if additional taxation took place. It may take a few turns to notice a trend and even then it may be impossible to detect a small number of hidden taxers. If the province is overpopulated, putting men on guard (which may force the hidden high stealth units to work) may be the way to go. Since player factions "work first", the effect would be noted by a reduction in the expected surplus. For example a swamp province with more than 834 men should produce $10,000 in step 4 and the final surplus should decrease by a multiple of 10. If it doesn't do so additional units are working. The bottom line is that by paying close attention, it may be possible to detect the presence of extremely high stealth units, even if your observation skill is very low. You can also use the above steps to estimate the expected surplus in a " fully taxed province". By fully taxed, I mean one in which the entire surplus is collected by entertainment or taxation. If the population at the start of a turn is N (and N is less than maximum effective population), then prior to maintenance the surplus will be $12*N or $15*N (assuming negligible recruiting). The surplus will decrease by ~10.5*N during maintenance, so you should see a surplus of $1.5*N or $4.5*N (in a plain province). Next installment: Optimizing the peasant population. The above analysis generated by the scribes of faction 59, "Larson's Adventurers", formed in Gurkacre (9,14) on Jan 01 reachable at "Bill_Larson@ncsu.edu" ######################################################################## =-=-= END TIMES 206 =-=-= ######################################################################## Up