@verb #8084:"@create-card" any none none rdo #8084 @program #8084:"@create-card" any none none if (player != this) return $msg:mtell("huh") endif if (!$cmd_utils:y_or_n("Create a card named '" + dobjstr + " card'?")) return endif level = $cmd_utils:read("power level (1 - 5)") lvl = toint(level) if (lvl < 1 || lvl > 10) return player:tell("stupid.") endif generic_card = $recycler:create($card, $card_holder) generic_card:_set_name(tostr(dobjstr, " card")) generic_card:_set_aliases({tostr(dobjstr, " card"), dobjstr}) generic_card.possessor = #-1 generic_card.level = lvl generic_card.generic = 1 "now.. how to decide what type of card this is.." type = random(1000) power = 6 + 3 * (lvl - 1) power = power + random(6) if (type < 500) "half of the cards have two strong sides." if (type < 300) "adjacent sides." idx = random(4) amt = power * (random(2) + 1) / 4 amt = amt / 2 amt = min(10, amt) generic_card.values = {0, 0, 0, 0} generic_card.values[idx] = amt power = power - amt generic_card.values[idx + 1 > $ ? 1 | idx + 1] = amt - (random(2) - 1) power = power - generic_card.values[idx + 1 > $ ? 1 | idx + 1] for x in [1..4] if (generic_card.values[x] == 0) generic_card.values[x] = power / 2 power = power - generic_card.values[x] if (power == 1) generic_card.values[x] = generic_card.values[x] + 1 break endif endif endfor player:tell("adjacent sides card.") else "opposite sides" idx = random(2) amt = power * (random(2) + 1) / 4 amt = amt / 2 amt = min(10, amt) generic_card.values = {0, 0, 0, 0} amt = power * (random(2) + 1) / 4 generic_card.values[idx] = amt power = power - amt generic_card.values[idx + 2] = amt - (random(2) - 1) power = power - generic_card.values[idx + 2] for x in [1..4] if (generic_card.values[x] == 0) generic_card.values[x] = power / 2 power = power - generic_card.values[x] if (power == 1) generic_card.values[x] = generic_card.values[x] + 1 break endif endif endfor player:tell("opposite sides cards.") endif elseif (type < 750) "another 25% have three strong sides." amt = power * 4 / 5 amt = amt / 3 amt = max(1, min(10, amt)) values = {amt, amt, amt, power = power - amt * 3} power = 0 shift = random(5) - 1 for cnt in [1..shift] values = {values[$], @values[1..3]} endfor generic_card.values = values player:tell("three strong sides") else "the rest are totally random." generic_card.values = {0, 0, 0, 0} while (power) generic_card.values[random(4)] = generic_card.values[random(4)] + 1 power = power - 1 endwhile player:tell("Completely random.") endif for x in [1..4] if (generic_card.values[x] < 1) generic_card.values[x] = 1 endif endfor player:tell($su:nn(generic_card), " created.") generic_card.best_before = 0 "Last modified by Dax (#789) on Tue May 3 14:09:36 2005 MDT." .