Exemplo n.º 1
0
int eventBackstab(object backstabber, object target) {
    object env;
    float tmp;
    int suprise;
    object *weapons;
    int numberOfWeapons;
    int numberOfStabs;
    int i;

    if(!backstabber || !(env = environment(backstabber))) return 0;
    if(!target || !present(target, env)) {
        backstabber->eventPrint("Your hapless victim is no longer present.");
        return 1;
    }

    tmp = backstabber->GetSkillLevel("stealth")*1.5;
    tmp += backstabber->GetStatLevel("charisma")/2.0;
    tmp += backstabber->GetStatLevel("luck")/3.0;
    tmp += backstabber->GetMobility()/3.0;
    tmp -= target->GetStatLevel("luck")/3.0;
    tmp -= target->GetStatLevel("wisdom")/3.0;
    tmp -= target->GetMobility()/5.0;
    tmp *= 1.0;
    if(tmp < 1.0) tmp = 1.0;
    suprise = to_int(tmp);

    backstabber->AddSkillPoints("stealth", to_int(suprise * 3.0));
    backstabber->AddStaminaPoints(-(5 + random(5)));
    moral_act(backstabber, target, -30);

    if(suprise < random(100) || !present(target, environment(backstabber))) {
        backstabber->eventPrint("%^RED%^" + target->GetName()
          + " evades your poorly executed backstab.%^RESET%^");
        target->eventPrint("%^RED%^You easily dodge " + possessive_noun(backstabber)
          + " attempted backstab.%^RESET%^");
        environment(backstabber)->eventPrint("%^RED%^" + target->GetName()
          + " dodges " + possessive_noun(backstabber) + " attempted backstab.%^RESET%^",
          ({backstabber, target}));
Exemplo n.º 2
0
    switch(Count){
        case 10:
            if(stank)
                message("smell", "The "+Limb+" rapidly corrodes.", environment());
            SetShort("the corroding remnant of a " + Limb);
            break;
        case 20:
            if(stank)
                message("smell", "An acrid chemical odor fills the area.",
                        environment());
            SetShort("some corroded chemicals");
            break;
        case 30:
            CallOut = -1;
            Destruct();
            return 0;
    }
    Count++;
    return Count;
}

void SetLimb(string limb, string owner, string race){
    SetKeyName(limb);
    SetId( ({ "limb", Limb = limb }) );
    Owner = owner;
    Race = race;
    Count = 1;
    SetShort("a melting " + possessive_noun(Race) + " " +Limb);
    SetLong("This limb is rapidly corroding into its component chemicals.");
}