Vampglobals

Synopsis

Vampire Globals provides shapeshifting, Obfuscation, Auspex, and Blood Buffs. There is no blood expenditure or blood heal command because we use a hurtme/healme code, and there likewise is no feeding command because it's a universal player global that the victim uses to give blood to the fampire (because code-abuse is bad, mmkay).

Flags, Locks: This is flagged as Inherit and Safe, and has a Uselock: is_vampire/1.

Dependencies

To make this work, you're going to either have to make changes to how the pump and relax command accesses your stats, or install TRB's Sheet Handler Object and replace DBs. To make Auspex and Obfuscate work, you need WODRealms. If you have questions, then send an email to moc.evil|xumbrt#moc.evil|xumbrt.

Commands

"*" constitutes a wildcard.

  • +relax and +pump: Buff and reset stats (reliant on Sheet handler)
  • +disc*: List your Disciplines. (reliant on Sheet handler)
  • +mask name/description: Changes your @name and your @desc. Stores whatever you had *currently* as your &obfname and &obfdesc. The problem as-is, then, is that if you use +mask twice in a row you'll loose your original description.
  • +unmask: restores what you had before you used +mask.
  • +auspex: This sets you HSS and gives you a delightful, randomly selected message. Your HSS level reads from your auspex rating, so this is dependent on Sheet Handler. Auspex 2 is handled through another object that dictates Auras and how they work.
  • +normal: This turns HSS off.
  • +cloak and +uncloak: This sets you Obfuscate and gives you obf_level equal to your Obfuscate, which means this is dependent oh Sheet Handler.
  • +v/desc <bat|wolf> = <hurry to the furry>: This lets you change your description info for if you intend to do any animaux shape shifting.
  • +v/shift <bat|wolf> = This executes the shapeshifting. Depending on how you handle descs on your game (multi descing, a desc source object), you will want to update what it does to someone's description.

Code

DO_RELAX: $+relax:&attributes %#=[u(%#/defaultattrs)];@pemit %#=Your stats have been restored.%r[u(#186/showattrs)]

SHIFT_BAT: -2 1 0 0 -3 0 2 0 0

SHIFT_WOLF: 1 2 2 0 -3 0 0 0 0

VSHIFT: $+v/shift *:@switch/first 0=match(bat wolf human,%0),{@pemit %#=You do not possess a %0 form. Check yourspelling.},or(gte(u(#117/retrievepowervalue,protean),4),gte(u(#117/univbgvaluebyname,Generation),5)),{@pemit %#=You do not possess the skills to shapeshift.},0,{&attributes %#=iter(1 2 3 4 5 6 7 8 9,[add(extract(u(%#/defaultattrs),##,1),extract(u(#324/shift_[%0]),##,1),extract(u(%#/shift_[%0]),##,1))]%b);@remit loc(%#)=[capstr(name(%#))] transforms into a [%0].;@desc %#=[u(%#/desc_[%0])]}

AUSPEX_MESSAGES [$]: Bat-vision %chactivated.%cn | You can see %ch forever.%cn | Detective-vision %ch on.%cn | The world seems a little brighter. | Nothing will pass your notice. | You sharpen your senses to their peak. | You are the epitome of perception. | Gonna catch me some obfuscated fuckers red-handed.

IS_VAMPIRE: strmatch(u(#395/list_vampire_classes),*[u(%#/class)]*)

CMD_+PUMP: $+pump *:@switch/first 0=u(%#/currblood),{@pemit %#=You don't have the blood! In fact, shouldn't you be in torpor?},match(strength dexterity stamina,%0*),{@pemit %#=You can only raise a physical attribute.},lte(add(1,u(#117/RETRIEVEATTRVALUE,%0*)),extract(5 5 5 5 5 6 7 8 9 10 10 10 10,add(1,u(#117/UNIVBGVALUEBYNAME,generation)),1)),{@pemit %#=You cannot raise your stat that high with that generational limit.},{&attributes %#=replace(u(%#/attributes),u(#117/cg_return_attr_index,%0*),add(1,u(#117/retrieveattrvalue,%0*)));&currblood %#=sub(u(%#/currblood),1);@remit %l=%ch%cr| %cwGame%cr |%cn [name(%#)] is buffing a stat.}

DO_+DISCIPLINES: $+disc*: @pemit %#= Your disciplines:%r[iter(u(%#/mainpowers),##%r,|)]%r%rCoded-In disciplines: [u(me/installed_disciplines)]

INSTALLED_DISCIPLINES: Auspex: +help/aura%rObfuscate: +help obfuscate%r

DISCIPLINE_OBFUSCATE_3ON: $+mask */*:&obfdesc %#=[u(%#/desc)];@desc %#=[if(lt(u(#117/retrievepowervalue,obfuscate),3),[u(%#/desc)],%1)];&obfname %#=[name(%#)];@set %#/obfname=wizard;@set %#/obfname=hidden;@name %#=[if(lt(u(#117/retrievepowervalue,obfuscate),3),[u(%#/name)],[capstr(%0)])];@pemit %#=[if(lt(u(#117/retrievepowervalue,obfuscate),3),You do not have the ability to change your appearance in this way.,You pull a disguise around yourself in the perceptions of others.)]

DISCIPLINE_OBFUSCATE_3OFF: $+unmask:@desc %#=[u(%#/obfdesc)];@name %#=[u(%#/obfname)];@pemit %#=You look like your old self.

DISCIPLINE_AUSPEX_1ON: $+auspex: @set %#=[if(lt(u(#117/retrievepowervalue,auspex),1),!)]HSS;&hss_level %#=[u(#117/retrievepowervalue,auspex)];@set %#/hss_level=wizard;@set %#/hss_level=hidden;@pemit %#=[if(lt(u(#117/retrievepowervalue,auspex),1),You don't have auspex!,extract(u(me/auspex_messages),[rand(8)],1,|))]

DISCIPLINE_AUSPEX_1OFF: $+normal:@set %#=!HSS;@pemit %#=[if(lt(u(#117/retrievepowervalue,auspex),1),You don't have auspex!,Your senses are a touch more sensible as the world dulls and dims to the way it was. )]

DISCIPLINE_OBFUSCATE_1ON: $+cloak:@set %#=[if(lt(u(#117/retrievepowervalue,obfuscate),1),!)]obf;&obf_level %#=[u(#117/retrievepowervalue,obfuscate)];@set %#/obflevel=hidden;@pemit %#=[if(lt(u(#117/retrievepowervalue,obfuscate),1),You do not have Obfuscate as a discipline.,Your form dissolves from the absent perceptions of others.)]

DISCIPLINE_OBFUSCATE_1OFF: $+uncloak:@set %#=!obf;&obf_level %#=;@pemit %#=[if(lt(u(#117/retrievepowervalue,obfuscate),1),You do not have Obfuscate as a discipline.,Back to reality.)]

CMD_SETDESC_BAT: $+v/desc bat=*:&desc_bat %#=%0;&desc_human %#=[u(%#/desc)]

CMD_SETDESC_WOLF: $+v/desc wolf=*:&desc_wolf %#=%0;&desc_human %#=[u(%#/desc)]