@create #517 named Generic Casting/Armour/View/Freeze/Combat/Magic Effect:Generic Casting/Armour/View/Freeze/Combat/Magic Effect,effect
;;#8868.("manufactured") = 947275400
;;#8868.("worth") = -1
;;#8868.("condition") = E_NONE
;;#8868.("odrop_failed_msg") = "%<tries> to drop %t but fails!"
;;#8868.("odrop_succeeded_msg") = "%<drops> %t."
;;#8868.("otake_succeeded_msg") = "%<picks> up %t."
"#8868.("key") => E_PERM (Permission denied)
;;#8868.("aliases") = {"Generic Casting/Armour/View/Freeze/Combat/Magic Effect", "effect"}
;;#8868.("description") = {"Ok, so here's how it works:", "", "Design the effect object with combat and/or armour and/or magic effects ", "and make it a child of Generic Armour/Combat/Magic Effect (#8868) as ", "appropriate.", "", "Set the .effects to be {\"magic_effects\", \"combat_effects\"} or whatever ", "you've defined.", "", "Now you can use this:add(<doll>) and this:remove(<doll>) to add/remove ", "this object from the correct effects properties on <doll>.  Whee."}
;;#8868.("object_size") = {2750, 1141286627}

@verb #8868:"add remove" this none this
@program #8868:add
":add(<doll>) or :remove(<doll>)";
"Adds/Removes this object to all the effects props on <doll> that are specified in this.effects.";
{doll} = args;
$local.rpg:secure();
function = ("set" + verb) + "_att";
for effects in (this.effects)
  doll:(function)(effects, this);
endfor
.

@verb #8868:"make_fertile" this none this
@program #8868:make_fertile
"Usage: make_fertile()  => Makes this temporarily fertile if permitted.";
"       make_fertile(<True>) => Resets this to unfertile.";
if ($local.rpg:trusted(caller_perms()))
  if (args && this.f)
    this.f = 0;
  elseif (!this.f)
    this.f = 1;
    fork (0)
      this.f = 0;
    endfork
  endif
else
  return E_PERM;
endif
.

@verb #8868:"set_aliases" this none this
@program #8868:set_aliases
if ($perm_utils:controls(caller_perms(), this) || (this == caller))
  fork (0)
    pass(setadd(@args, "effect"));
  endfork
  return pass(@args);
else
  return E_PERM;
endif
.

"***finished***