2020-06-28 15:27:56 +00:00
|
|
|
# This file is part of MarMOTS.
|
|
|
|
#
|
|
|
|
# MarMOTS is free software: you can redistribute it and/or modify it under the terms of the GNU Affero
|
|
|
|
# General Public License as published by the Free Software Foundation, either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# MarMOTS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
|
|
|
|
# Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU Affero General Public License along with MarMOTS. If not,
|
|
|
|
# see <https://www.gnu.org/licenses/>.
|
|
|
|
#
|
|
|
|
# Copyright 2009, 2010, 2011, 2020 Jeremy Penner
|
|
|
|
|
2011-03-19 00:10:02 +00:00
|
|
|
from engine import *
|
|
|
|
from basetoken import *
|
|
|
|
import telnet
|
|
|
|
|
|
|
|
class IntroTerm(Terminal):
|
|
|
|
def run(self):
|
|
|
|
self.newLine(3, 300)
|
|
|
|
self.type("Logon Please: ")
|
|
|
|
name = self.getLine()
|
|
|
|
self.newLine(2, 300)
|
|
|
|
self.typeLn("Welcome, " + name)
|
|
|
|
self.type("You have ")
|
|
|
|
self.wait(200)
|
|
|
|
self.typeLn("top security clearance.")
|
|
|
|
self.type("You are looking ")
|
|
|
|
self.wait(200)
|
|
|
|
self.typeLn("good to-day.")
|
|
|
|
while True:
|
|
|
|
self.typeLn("Would you like to download")
|
|
|
|
self.type("all secret files? [Y/N] ")
|
|
|
|
if (self.getPrintableKey().upper() == "Y"):
|
|
|
|
break
|
|
|
|
self.printSt("No")
|
|
|
|
self.newLine()
|
|
|
|
self.typeLn("But thou must!")
|
|
|
|
self.wait(500)
|
|
|
|
self.printSt("Yessir!")
|
|
|
|
self.newLine(2, 50)
|
|
|
|
self.type("Downloading... ")
|
|
|
|
spinner = self.newSpinner()
|
|
|
|
self.wait(3000)
|
|
|
|
spinner.die()
|
|
|
|
blnkScrn = Blinker(self.game, self.setColBg, [ansi.RED, ansi.BLUE])
|
|
|
|
self.newLine(2, 50)
|
|
|
|
self.typeLn("EXPERT HAX0R DETECTED")
|
|
|
|
self.typeLn("CODE RED CODE RED")
|
|
|
|
self.newLine(2, 400)
|
|
|
|
self.wait(500)
|
|
|
|
self.typeLn("OH SHIIIIIIIIIIIIIIIIT!")
|
|
|
|
self.wait(800)
|
|
|
|
blnkScrn.die()
|
|
|
|
self.setColBg(ansi.BLACK)
|
|
|
|
self.newLine(2, 50)
|
|
|
|
self.printSt("NO CARRIER")
|
|
|
|
self.newLine()
|
|
|
|
self.client.quit()
|
|
|
|
|
2020-06-27 19:39:10 +00:00
|
|
|
class HaxorGame(Game):
|
|
|
|
def GetRgclsTokTrans(self):
|
|
|
|
return [[AutoJoiner, IntroTerm]]
|
|
|
|
|
|
|
|
class HaxorRunner(Runner):
|
2011-03-19 00:10:02 +00:00
|
|
|
def RunGame(self, client):
|
2020-06-27 19:39:10 +00:00
|
|
|
client.joinGame(HaxorGame())
|
2011-03-19 00:10:02 +00:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2020-06-27 19:39:10 +00:00
|
|
|
HaxorRunner().RunServer()
|