Example #1
0
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'
Example #2
0
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]}
Example #3
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)
Example #4
0
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'
Example #5
0
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'
Example #6
0
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'
Example #7
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 "changeling_stat", {
        'seeming':
        find(caller.get('Seeming', statclass='Sphere'), statclass='Seeming')[0]
    }
Example #8
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]
    }
Example #9
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"
Example #10
0
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]
    }
Example #11
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"
Example #12
0
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'
Example #13
0
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"
Example #14
0
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"
Example #15
0
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
Example #16
0
def _delete_merit(caller, raw_string, **kwargs):
    set(caller, kwargs['entry'], subentry=kwargs['subentry'], value=0)
    return 'vampire_merits'
Example #17
0
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'
Example #18
0
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'
Example #19
0
def _remove_gift(caller, raw_string, **kwargs):
    set(caller,kwargs['gift'],statclass='Gift',value=False)
    return 'werewolf_gifts'
Example #20
0
def _remove_contract(caller, raw_string, **kwargs):
    set(caller, kwargs['contract'], statclass='Contract', value=False)
    return 'changeling_contracts'
Example #21
0
def _delete_rite(caller, raw_string, **kwargs):
    set(caller, kwargs['rite'], value=False)
    return 'werewolf_merits'