mud/lib/domains/Praxis/obj/misc/watchtower.c
2020-09-06 05:43:07 -07:00

82 lines
2.4 KiB
C

// /obj/monument.c
// from the Nightmare mudlib
// The time keeper of Krasna Square
// created by Daroki@Nightmare
#include <lib.h>
#include <daemons.h>
#define DONATORS_LIST ({ "Kalinash", "Kazmandu", "Ariel", "Mikla", "Ninja",\
"Shambere", "Cair", "Drittz", "Beorn", "Vilesilencer", "Elwin", "Silenus",\
"Corvar", "Lassondra", "Bohemund", "Maria", "Arugess", "Drakken", "Dana",\
"Soong", "Slade", "Rearden", "Stonehenge", "Shadowwolf", "Descartes",\
})
inherit LIB_ITEM;
void GetLong_time();
string query_hour();
void create() {
::create();
SetKeyName("monument");
SetId( ({ "monument", "tower", "clock" }) );
SetLong(
"This monument stands at the centre of Praxis to remind "
"everyone of those who have made this reality possible for "
"everyone to enjoy. On one face of the monument is a clock "
"which shows the time in Praxis. All other sides are "
"engraved with the names of those who have contributed "
"in money to this world. <read clock> will tell you the time. "
"<read names> to see who all has donated, and do thank them."
); SetMass( 0);
SetNoClean(1);
}
void init() {
add_action("read", "read");
}
int read(string str) {
if(str == "clock") {
GetLong_time();
return 1;
}
else if (str == "names") {
message("Ninfo", "These people have donated money and made Nightmare possible:\n"+
format_page(sort_array(DONATORS_LIST, "alpha", this_object()), 5)
,this_player());
return 1;
}
notify_fail("Read what?\n");
return 0;
}
void GetLong_time() {
write(capitalize(season(time()))+" hovers over "+mud_name()+" on the "+
date(time())+ordinal(date(time()))+" day of "+
month(time())+" in year "+year(time())+" NM.\n"
);
write("The clock face reads "+query_hour()+".\n");
}
string query_hour() {
int tmp, tmp2;
string str;
tmp = hour(time());
if(!tmp) tmp =10;
else if(tmp > 10) tmp -= 10;
tmp2 = minutes(time());
str = (hour(time()) < 10 ? "am" : "pm");
return tmp + ":" + (tmp2 > 9 ? tmp2 : "0"+tmp2)+" "+str;
}
int get() { return 0; }
string affect_environment() { return "A magnificent monument rises above the square."; }
int alpha(string a, string b) { return strcmp(a,b); }