[Turn off line numbering]1: arg value, prop; 2: var i, out, dflt, l, eff, f, n; 3: 4: if (type(value) == 'frob && class(value) == $message_frob) 5: value = .new_with(value, sender()); 6: out = #[]; 7: eff = prop.effect(); 8: f = prop.senses(); 9: dflt = f.contains('any) ? f['any] : 1000000; 10: n = 0; 11: for i in (value) { 12: if (i[1] in ['message, 'propagator, 'effects]) { 13: out = out.add(@i); 14: } else { 15: if (f.contains(i[1])) 16: l = i[2] - f[i[1]]; 17: else 18: l = i[2] - dflt; 19: if (l > 0) { 20: out = out.add(i[1], l); 21: n++; 22: } 23: } 24: } 25: if (!n) 26: return 0; 27: if (eff) 28: out = out.add('effects, ((| out.effects() |) || []) + [eff]); 29: return (<this(), out>);
// Created 09-Apr-1997 as a part of ColdCore, see: @help Credit