1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/Source/Bit.h Fri Mar 07 11:43:02 2008 -0800
1.3 @@ -0,0 +1,69 @@
1.4 +/* This code is based on Apple's "GeekGameBoard" sample code, version 1.0.
1.5 + http://developer.apple.com/samplecode/GeekGameBoard/
1.6 + Copyright © 2007 Apple Inc. Copyright © 2008 Jens Alfke. All Rights Reserved.
1.7 +
1.8 + Redistribution and use in source and binary forms, with or without modification, are permitted
1.9 + provided that the following conditions are met:
1.10 +
1.11 + * Redistributions of source code must retain the above copyright notice, this list of conditions
1.12 + and the following disclaimer.
1.13 + * Redistributions in binary form must reproduce the above copyright notice, this list of
1.14 + conditions and the following disclaimer in the documentation and/or other materials provided
1.15 + with the distribution.
1.16 +
1.17 + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
1.18 + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
1.19 + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRI-
1.20 + BUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1.21 + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1.22 + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1.23 + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
1.24 + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1.25 +*/
1.26 +#import <Quartz/Quartz.h>
1.27 +
1.28 +
1.29 +@class Game, Player;
1.30 +@protocol BitHolder;
1.31 +
1.32 +
1.33 +/** Standard Z positions */
1.34 +enum {
1.35 + kBoardZ = 1,
1.36 + kCardZ = 2,
1.37 + kPieceZ = 3,
1.38 +
1.39 + kPickedUpZ = 100
1.40 +};
1.41 +
1.42 +
1.43 +/** A moveable item in a card/board game.
1.44 + Abstract superclass of Card and Piece. */
1.45 +@interface Bit : CALayer <NSCopying>
1.46 +{
1.47 + @private
1.48 + int _restingZ; // Original z position, saved while pickedUp
1.49 + Player *_owner; // Player that owns this Bit
1.50 +}
1.51 +
1.52 +/** Conveniences for getting/setting the layer's scale and rotation */
1.53 +@property CGFloat scale;
1.54 +@property int rotation; // in degrees! Positive = clockwise
1.55 +
1.56 +/** "Picking up" a Bit makes it larger, translucent, and in front of everything else */
1.57 +@property BOOL pickedUp;
1.58 +
1.59 +/** Current holder (or nil) */
1.60 +@property (readonly) id<BitHolder> holder;
1.61 +
1.62 +/** Ownership of this Bit */
1.63 +@property (assign) Player *owner;
1.64 +
1.65 +/** Conveniences for owner.friendly, owner.unfriendly */
1.66 +@property (readonly, getter=isFriendly) BOOL friendly;
1.67 +@property (readonly, getter=isUnfriendly) BOOL unfriendly;
1.68 +
1.69 +/** Removes this Bit while running a explosion/fade-out animation */
1.70 +- (void) destroy;
1.71 +
1.72 +@end