From 95159a69d27c25b86487ee2d8606670714c9bdeb Mon Sep 17 00:00:00 2001 From: Nathan Curtis Date: Sat, 16 Aug 2008 00:13:38 +0000 Subject: [PATCH] A StatModifier to ensure that an IntStat has been set to a minimum value. If the stat's value is already greater than or equal to the minimum requested, the stat is not modified. git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@731 c613c5cb-e716-0410-b11b-feb51c14d237 --- .../stats/data/IntStatMinimumer.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/java/com/threerings/stats/data/IntStatMinimumer.java diff --git a/src/java/com/threerings/stats/data/IntStatMinimumer.java b/src/java/com/threerings/stats/data/IntStatMinimumer.java new file mode 100644 index 00000000..b7221cc9 --- /dev/null +++ b/src/java/com/threerings/stats/data/IntStatMinimumer.java @@ -0,0 +1,49 @@ +// +// $Id$ +// +// Vilya library - tools for developing networked games +// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved +// http://www.threerings.net/code/vilya/ +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published +// by the Free Software Foundation; either version 2.1 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +package com.threerings.stats.data; + +/** + * Ensures that a particular stat has been set to a minimum value. + */ +public class IntStatMinimumer extends StatModifier +{ + public IntStatMinimumer (Stat.Type type, int minimum) + { + super(type); + _minimum = minimum; + } + + /** Constructs an empty IntStatIncrementer (for Streaming purposes). */ + public IntStatMinimumer () + { + } + + @Override // from StatModifier + public void modify (IntStat stat) + { + if (stat.getValue() < _minimum) { + stat.setValue(_minimum); + } + } + + protected int _minimum; +}