"--------------------------------------------------------------------------------" " Special-purpose quasispells " "--------------------------------------------------------------------------------" (SPELL (NONMAGIC SILENT) marriage "marry" (PC target) (=> (GUARD (REQUIRE (|| (is_in (location caster) (@+ (@ "014-1" 28 39) 8 6)) (is_in (location caster) (@+ (@ "001-2" 21 27) 4 4))))) (EFFECT (IF (== target caster) (ABORT)) "no valid target or tried to marry self?" (IF (< (level caster) MIN_MARRY_LEVEL) (BLOCK (message caster (+ (+ "You must be level " MIN_MARRY_LEVEL) " or higher to marry!")) (ABORT))) (IF (< (level target) MIN_MARRY_LEVEL) (BLOCK (message caster (+ (+ "Your partner must be level " MIN_MARRY_LEVEL) " or higher to marry!")) (ABORT))) (IF (== (partner caster) target) (BLOCK (message caster (+ (+ "You and " (name_of target)) " are already married.")) (ABORT))) (IF (is_married caster) (BLOCK (message caster "You are already married!") (ABORT))) (IF (is_married target) (BLOCK (message caster (+ (name_of target) " is already married.")) (ABORT))) (IF (!= (distance (location caster) (location target)) 1) (BLOCK (message caster "You need to stand next to each other.") (ABORT))) (IF (|| (== (count_item caster "WeddingRing") 0) (== (count_item target "WeddingRing") 0)) (BLOCK (message caster "You must both be wearing your wedding rings!") (ABORT))) (SET script_target target) (SCRIPT "{ announce @caster_name$ + \" is asking \" + strcharinfo(0) + \" for marriage.\", 2; mes @caster_name$ + \" wishes to marry you.\"; mes \"Do you accept?\"; next; menu \"Yes, I do!\", L_yes, \"No.\", L_Close; L_yes: if (marriage(@caster_name$)) announce @caster_name$ + \" and \" + strcharinfo(0) + \" are now married!\", 0; goto L_Close; L_Close: close; }") (IF (not (is_married caster)) (message caster (+ (name_of target) " turned down your marriage offer."))))))