def _delete_merit(caller, raw_string, **kwargs): if (kwargs['entry'] == 'Mantle' and kwargs['subentry'] == caller.db.sphere['Court']): caller.msg('|/You can\'t remove your court mantle') else: set(caller, kwargs['entry'], subentry=kwargs['subentry'], value=0) return 'changeling_merits'
def _return_to_stat(caller, raw_string, **kwargs): set(caller, caller.db.cg['stat_boost']['stat'], statclass='Skill', value=caller.db.cg['stat_boost']['start']) caller.db.renown = {} return 'werewolf_stat',{'auspice': find(caller.get('Auspice', statclass='Sphere'), statclass='Auspice')[0]}
def func(self): parsed = parser(self.args) try: character = search_object( parsed['args'], typeclass='typeclasses.characters.Character') except LookupError: self.caller.msg('Something went wrong with the search') else: if len(character) == 0: self.caller.msg('I can\'t find character ' + parsed['args']) elif len(character) > 1: self.caller.msg('Too many possible matches for ' + parsed['args']) else: try: set(character[0], parsed['entry'], subentry=parsed['subentry'], statclass=parsed['statclass'], value=parsed['value']) except LookupError: self.caller.msg( 'Something went wrong setting the value:\n' + str(parsed)) else: message = parsed['entry'] if parsed['subentry'] != '': message = message + '(' + parsed['subentry'] + ')' message = (message + ' set to ' + str(parsed['value']) + ' for ' + parsed['args']) self.caller.msg(message)
def _starting_gifts(caller, raw_string, **kwargs): auspice = find(caller.get('Auspice',statclass='Sphere'), statclass='Auspice')[0] moon = auspice.db.auspice_gifts[0].lower() set(caller, moon_list[moon][0], statclass='Gift', value=True) if caller.get(auspice.db.renown,statclass='Renown') == 2: set(caller, moon_list[moon][1], statclass='Gift', value=True) return 'werewolf_gifts'
def _changeling_set_court(caller, raw_string, **kwargs): caller.db.sphere['Court'] = kwargs['court'] if kwargs['court'] != 'None': set(caller, 'Mantle', statclass='Merit', subentry=kwargs['court'], value=1) return 'changeling_anchors'
def _remove_discipline(caller, raw_string, **kwargs): if ('Mystery Coil' in caller.db.sphere and caller.db.sphere['Mystery Coil'] == kwargs['discipline']): caller.msg('|/Removal of favored coil required a reset of all coils') del caller.db.coils del caller.db.sphere['Mystery Coil'] else: set(caller, kwargs['discipline'], value=False) return 'vampire_disciplines'
def _return_to_stat(caller, raw_string, **kwargs): set(caller, caller.db.cg['stat_boost']['stat'], statclass='Attribute', value=caller.db.cg['stat_boost']['start']) return "changeling_stat", { 'seeming': find(caller.get('Seeming', statclass='Sphere'), statclass='Seeming')[0] }
def _return_to_stat(caller, raw_string, **kwargs): set(caller, caller.db.cg['stat_boost']['stat'], statclass='Attribute', value=caller.db.cg['stat_boost']['start']) return 'vampire_stat', { 'clan': find(caller.get('Clan', statclass='Sphere'), statclass='Clan')[0] }
def _raise_stat(caller, raw_string, **kwargs): start_value = caller.get(kwargs['stat'],statclass='Skill') if start_value == 5: caller.msg('|/Can\'t boost a stat to over 5') return "werewolf_stat", kwargs else: set(caller, kwargs['stat'], statclass='Skill', value=start_value+1) caller.db.cg['stat_boost'] = {'stat': kwargs['stat'], 'start': start_value} return "werewolf_tribe"
def _return_to_court(caller, raw_string, **kwargs): set(caller, 'Mantle', statclass='Merit', value=0, subentry=caller.get('Court', statclass='Sphere')) return "changeling_court", { 'kith': find(caller.get('Kith', statclass='Sphere'), statclass='Kith')[0] }
def _raise_renown(caller, raw_string, **kwargs): start_value = caller.get(kwargs['renown'].db.longname, statclass='Renown') if start_value >= 2: caller.msg('|/Can\'t boost a starting renown to over 2') return "werewolf_stat", kwargs else: set(caller, kwargs['renown'].db.longname, statclass='Renown', value=start_value + 1) caller.db.cg['boost_renown'] = {'renown': kwargs['renown'].db.longname, 'start': start_value} return "werewolf_anchors"
def _return_to_regalia(caller, raw_string, **kwargs): caller.db.sphere['Regalia'] = [caller.db.sphere['Regalia'][0]] caller.db.sphere['Frailties'] = [] caller.db.merits = [] if caller.db.sphere['Court'] != 'None': set(caller, 'Mantle', statclass='Merit', subentry=caller.db.sphere['Court'], value=1) caller.db.power = {'Wyrd': 1} return 'changeling_regalia'
def _raise_stat(caller, raw_string, **kwargs): start_value = caller.get(kwargs['stat'], statclass='Attribute') if start_value == 5: caller.msg('|/Can\'t boost a stat to over 5') return ('vampire_stat', kwargs) else: set(caller, kwargs['stat'], statclass='Attribute', value=start_value + 1) caller.db.cg['stat_boost'] = { 'stat': kwargs['stat'], 'start': start_value } return "vampire_covenant"
def _raise_stat(caller, raw_string, **kwargs): start_value = caller.get(kwargs['stat'], statclass='Attribute') if start_value == 5: caller.msg('|/Can\'t boost a stat to over 5') return "changeling_stats" else: set(caller, kwargs['stat'], statclass='Attribute', value=start_value + 1) caller.db.cg['stat_boost'] = { 'stat': kwargs['stat'], 'start': start_value } return "changeling_kith"
def mortal_finish_cg(caller, raw_string, **kwargs): obj_menu = 'codes.commands.character_menus.CharacterInMenu' act_menu = 'codes.commands.character_menus.AccountInMenu' caller.cmdset.delete(obj_menu) caller.account.cmdset.delete(act_menu) del caller.db.cg caller.cmdset.add('codes.commands.character_commands.FinishedCharacter', permanent=True) caller.cmdset.delete('UnfinishedCharacter') set(caller, 'Integrity', statclass='Advantage', value=7) set(caller, 'Willpower', statclass='Advantage', value=caller.get('Willpower', subentry='Permanent', statclass='Advantage')) caller.db.finished_cg = time.asctime(time.localtime(time.time())) caller.db.xp = {'earned': 75, 'spent': 0, 'log': {}} caller.execute_cmd('look') display = {'node': {'format': 'suppress'}} return display
def _delete_merit(caller, raw_string, **kwargs): set(caller, kwargs['entry'], subentry=kwargs['subentry'], value=0) return 'vampire_merits'
def _xp_purchase(caller, raw_string, **kwargs): message = '|/Purchasing ' + kwargs['name'] if kwargs['type'].lower() not in [ 'specialty', 'contract', 'rote', 'praxis' ]: message = message + ': ' + str(kwargs['value']) message = message + ' for ' + str(kwargs['cost']) + ' XP.' caller.msg(message) if kwargs['type'].lower() == 'rote': log = 'Rote: ' + kwargs['name'] elif kwargs['type'].lower() == 'praxis': log = 'Praxis: ' + kwargs['name'] else: log = kwargs['name'] if not (kwargs['type'].lower() in ['specialty', 'contract', 'rote', 'praxis']): log = log + ': ' + str(kwargs['value']) if 'arcane' in kwargs and kwargs['arcane'] > 0: cost = (str(kwargs['cost']) + ' regular and ' + str(kwargs['arcane']) + ' arcane') caller.db.xp['arcane_spent'] = (caller.db.xp['arcane_spent'] + kwargs['arcane']) else: cost = str(kwargs['cost']) caller.db.xp['log'][time.time()] = [cost, log] caller.db.xp['spent'] = caller.db.xp['spent'] + kwargs['cost'] if kwargs['type'] == 'specialty': caller.db.specialties.append(kwargs['name']) else: set(caller, kwargs['stat'].db.longname, subentry=kwargs['subentry'], statclass=kwargs['type'], value=kwargs['value']) if 'frailty' in kwargs: f = find('Frailties', statclass='Sphere')[0] current_frailties = f.get(caller, subentry='') if current_frailties == False: current_frailties = [] current_frailties.append(kwargs['frailty']) f.set(caller, current_frailties) if kwargs['type'] == 'Renown': auspice = find(caller.get('Auspice'), statclass='Auspice')[0] if kwargs['stat'].db.longname == auspice.db.renown: moon_list = { 'crescent moon': [ 'Shadow Gaze', 'Spirit Whispers', 'Shadow Hunter', 'Shadow Masquerade', 'Panopticon' ], 'full moon': [ 'Killer Instinct', 'Warrior\'s Hide', 'Bloody-Handed Hunter', 'Butchery', 'Crimson Spasm' ], 'gibbous moon': [ 'War Howl', 'Voice of Glory', 'Dream Hunter', 'Thousand-Throat Howl', 'End of Story' ], 'half moon': [ 'Scent Beneath the Surface', 'Binding Oath', 'Sly Hunter', 'Ties of Word and Promise', 'Ties of Blood and Bone' ], 'new moon': [ 'Eviscerate', 'Slip Away', 'Relentless Hunter', 'Divide and Conquer', 'Breach' ] } index = kwargs['value'] - 1 auspice_moon = auspice.db.auspice_gifts[0].lower() new_gift = moon_list[auspice_moon][index] gift = find(new_gift, statclass='Gift')[0] if gift.get(caller) == False: gift.set(caller, value=True) caller.db.xp['log'][time.time()] = [ 0, gift.db.longname + ' free with renown gain' ] if 'praxis' in kwargs: set(caller, kwargs['praxis'].db.longname, value=True, statclass='Praxis') caller.db.xp['log'][time.time()] = [ 0, kwargs['praxis'].db.longname + ' free with gnosis gain' ] if 'obsession' in kwargs: o = find('Obsessions', statclass='Sphere')[0] current_obsessions = o.get(caller, subentry='') if current_obsessions == False: current_obsessions = [] current_obsessions.append(kwargs['obsession']) o.set(caller, current_obsessions) return 'start'
def _return_to_renown(caller, raw_string, **kwargs): set(caller, caller.db.cg['boost_renown']['renown'], statclass='Renown', value=caller.db.cg['boost_renown']['start']) return 'werewolf_renown'
def _remove_gift(caller, raw_string, **kwargs): set(caller,kwargs['gift'],statclass='Gift',value=False) return 'werewolf_gifts'
def _remove_contract(caller, raw_string, **kwargs): set(caller, kwargs['contract'], statclass='Contract', value=False) return 'changeling_contracts'
def _delete_rite(caller, raw_string, **kwargs): set(caller, kwargs['rite'], value=False) return 'werewolf_merits'